Download presentation
Presentation is loading. Please wait.
Published byMaximillian Julian Nash Modified over 8 years ago
1
CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 11 GEORGE KOUTSOGIANNAKIS 1 Copyright: 2015 Illinois Institute of Technology_ George Koutsogiannakis
2
Last Week’s Topics Event-Controlled Loops Using while Type-Safe Input Using Scanner Constructing Loop Conditions Reading a Text File Looping Techniques 2
3
New Topics Event-Controlled Loops Using do/while Count-Controlled Loops Using for Nested Loops Concept of Arrays. – Declaring and Instantiating Arrays – Accessing Array Elements 3
4
The do/while Loop Unlike the while loop, the condition for the do/while loop is evaluated at the end of the loop Thus, do/while loop executes at least once Some uses for a do/while loop: – Validate user input – Ask if the user wants to repeat an operation, such as play a game again. 4
5
do/while Flow of Control The do/while loop body is executed, then the condition is checked. If the condition is true, the loop body is repeated. If the condition is false, the loop body is not repeated. 5
6
do/while Syntax //initialize variables do { // body of loop } while ( condition ); //process the results 6
7
Example:Validate User Input We can use a do/while loop to check whether the user input is valid. We prompt the user inside the do/while loop. If the user input is not valid, we want to reprompt until the user enters a valid value. Thus, we form the condition so that it is true if user enters invalid data. 7
8
To Repeat an Operation Example code using a do/while loop to prompt the user to play a game again: do { // code to play a game System.out.print( "Play again (yes/no)? ") String answer = scan.next( ); } while ( answer.equalsIgnoreCase( "yes" ) ); 8
9
do/while loop Example public class TestDoWhile { public static void main(String[] args) { int count=11; int sum=0; do { count++; sum=sum+count; } while(count<=10); System.out.println(sum); } 9
10
do/while loop Example The output is 12 We enter the do and advance count to 12 from 11 We add 12 to 0 and sum=12 We reach the while condition and it evaluates to false. We are out of the while loop 10
11
Same code with while Loop public class TestDoWhile1 { public static void main(String[] args) { int count=11; int sum=0; while(count<=10) { count++; sum=sum+count; } System.out.println(sum); } 11
12
Same code with while Loop Output is zero. We reach the while condition and it evaluates to false. Thus we are not allowed to execute inside the while loop. We exit the while loop. 12
13
The for Loop Ideal when before the loop begins, you know the number of iterations to perform. Examples: – Find the sum of 5 numbers – Find the maximum of 20 numbers – Print the odd numbers from 1 to 10 13
14
for Loop Flow of Control The initialization statement is executed (once only). The loop condition is evaluated. If the condition is true, the loop body is executed. The loop update statement is then executed, and the loop condition is reevaluated. 14
15
The for Loop Syntax for ( initialization; loop condition; loop update ) { // loop body } Notes: semicolons separate terms in the loop header no semicolon follows the loop header curly braces are required only if more than one statement is in the loop body 15
16
Using a Loop Control Variable A loop control variable is convenient for counting for loops. – We set its initial value in the initialization statement – We check its value in the loop condition – We increment or decrement its value in the loop update statement 16
17
Testing for Loops An important test for for loops is that the starting and ending values of the loop variable are set correctly. For example, to iterate 5 times, use this header: for ( int i = 0; i < 5; i++ ) or this header: for ( int i = 1; i <= 5; i++ ) 17
18
Example For Loop public class ForLoop { public static void main(String[] args) { int count=0; int sum=0; for(count=0; count<=5; count++) { sum=sum+count; } System.out.println(sum); } Output=15 0+1+2+3+4+5=15 notice that there are 6 iterations in the loop 18
19
Processing a String (named word) In the reverse direction: Correct: for ( int i = word.length( ) - 1; i >= 0; i-- ) Incorrect: for ( int i = word.length( ); i >= 0; i-- ) ** There is no character at word.length( ) for ( int i = word.length( ) - 1; i > 0; i-- ) ** This does not process the character at index 0 Correct way: We iterate from word.length()=4 minus 1 which is 3 to 0 w o r d 0 1 2 3 The length is 4 but the index of the characters is from 0 to 3 We can not exceed the maximum index number in the loop!!! 19
20
Nested for Loop Execution The inner loop executes all its iterations for each single iteration of the outer loop Example: how can we produce this output? 1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 20
21
Analysis The highest number we print on each line is the same as the line number. for line = 1 to 5 increment by 1 each iteration { for number = 1 to line by 1 { print number and a space } print a new line } 21
22
Arrays Arrays allow us to save data into a data structure and retrieve the data later on in the program as needed. Arrays are useful for many applications, including calculating statistics or representing the state of a game. – For example the grades that we read off a file in last week’ s lab could had been stored in an array data structure and retrieved from there. 22
23
Arrays An array is a sequence of variables of the same data type. The data type can be any of Java's primitive types (int, short, byte, long, float, double, boolean, char), an array, or a user defined class (like Student type or People type etc). Each variable in the array is an element. We use an index to specify the position of each element in the array. 23
24
Declaring and Instantiating Arrays Arrays are objects, so creating an array requires two steps: 1.declaring a reference to the array 2.instantiating the array To declare a reference to the array, use this syntax: datatype [] arrayName; To instantiate an array, use this syntax: arrayName = new datatype[ size ]; where size is an expression that evaluates to an integer and specifies the number of elements. To do it in one line you write: datatype [] arrayName=new datatype[size] i.e. int [] my array=new int[10]; create san array that can store 10 int type elements. 24
25
Examples Declaring arrays: double [] dailyTemps; // elements are doubles String [] cdTracks; // elements are Strings boolean [] answers; // elements are booleans Auto [] cars; // elements are Auto references int [] cs101, bio201; // two integer arrays Instantiating these arrays: dailyTemps = new double[365]; // 365 elements cdTracks = new String[15]; // 15 elements int numberOfQuestions = 30; answers = new boolean[numberOfQuestions]; cars = new Auto[3]; // 3 elements cs101 = new int[5]; // 5 elements bio201 = new int[4]; // 4 elements 25
26
Default Values for Elements When an array is instantiated, the elements are assigned default values according to the array data type. Array data typeDefault value byte, short, int, long0 float, double0.0 charspace booleanfalse Any object reference (for example, a String) null 26
27
Assigning Initial Values to Arrays Arrays can be instantiated by specifying a list of initial values. Syntax: datatype [] arrayName = { value0, value1, … }; where valueN is an expression evaluating to the data type of the array and is the value to assign to the element at index N. Examples: int nine = 9; int [] oddNumbers = { 1, 3, 5, 7, nine, nine + 2, 13, 15, 17, 19 }; Auto sportsCar = new Auto( "Ferrari", 0, 0.0 ); Auto [] cars = { sportsCar, new Auto( ), new Auto("BMW", 100, 15.0 ) }; 27
28
an Array of integer values When instantiated: After assigning values: 28
29
Accessing Array Elements See Example 8.1 CellBills.java ElementSyntax Element 0 arrayName[0] Element i arrayName[i] Last element arrayName[arrayName.length - 1] 29
30
Example Entering elements into an array double [] myarray=new double[4]; myarray[0]=3.45; myarray[1]=4.23; myarray[2]=1.00; myarray[3]=0.23; Notice that the last index of the array is 3 and not 4 since we start the counting of the index from 0. 30
31
Inserting elements into an array using loops double[] myarray=new double[100]; for( int g=0; g<=myarray.length-1; g++) { myarray[g]= (g*3/5); } 31
32
Reading the elements of an array We assign the elements as we read them: double d=myarray[3]; reads the element at index 3 (4 th element) and assigns it to variable d. 32
33
Reading the elements of an array using for loop for (int k=0; k<=myarray.length-1; k++) { double d=myarray[k]; System.out.println(d); } During each iteration through the loop an element is read and it is outputted. 33
34
Reading the elements of an array using for loop Alternatively : for (int k=0; k<=myarray.length-1; k++) { System.out.println(myarray[k]); } Will accomplish the same. 34
35
Study Guide Chapter 6 – Sections 6.8, 6.9 6.10 Chapter 8 – Sections 8.1, 8.2 35
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.