programming methodology (1). iteration learning objectives explain the term iteration; repeat a...
TRANSCRIPT
Programming Methodology (1)
Iteration
Learning objectives
• explain the term iteration;
• repeat a section of code with a for loop;
• repeat a section of code with a while loop;
• repeat a section of code with a do...while loop;
• select the most appropriate loop for a particular task;
• explain the term input validation and write simple validation routines.
When to use a loop?
Display a square of stars (five by five) on the screen as follows:
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
System.out.println("*****");
System.out.println("*****");
System.out.println("*****");
System.out.println("*****");
System.out.println("*****");
REPEAT 5 times{
}System.out.println("*****");
The ‘for’ loop
for ( ; ; ){
}
start counter test counter change counter
// instruction(s) to be repeated go here
i = 1 i++i <= 5
System.out.println(“*****”);
int i;
Variable Scope
public static void main (String [] args){
}
if ( /* some test */){
}
int x;
int y;
x = 10;
System.out.print(x);
System.out.print(y);System.out.print(y);
y = x+1;
for ( ; ; ){
}
i = 1 i++i <= 5
System.out.println(“*****”);
RUN*************************
i 123456int i;
int i = 1
Different ways of using the loop counter
for ( ; ; ){
}
i ++i <= 5
System.out.println(“*****”);
*****
***************
int i = 1
for ( ; ; ){
}
i = i + 2i <= 5
System.out.println(“*****”);
*****
***************
int i = 1
for ( ; ; ){
}
i = i + 2i <= 10
System.out.println(“*****”);
*****
***************
int i = 1
for ( ; ; ){
}
i = i + 2i <= 10
System.out.println(“*****”);
RUN*************************
i 1357911
int i = 1
for ( ; ; ){
}
start counter test counter change counter
// instruction(s) to be repeated go here
int i = 10 i--i >= 1
System.out.println( i );
RUN
109876
i 1098765
54321
43210
The body of the loop
for ( ; ; ){
}
i ++i <= 3
System.out.println(“First line”);
*****
int i = 1
for ( ; ; ){
}
i ++i <= 3
System.out.println(“First line”);
*****
int i = 1
System.out.println(“Second line”);
First lineSecond lineFirst lineSecond lineFirst lineSecond line
for ( ; ; ){
}
i --i >= 1
System.out.println( i );
*****
int i = 10
10987654321
for ( ; ; ){
}
i --i >= 1
if ( i > 5 ){
System.out.println( i );}
int i = 10
109876
Nested loops
for (int i = 1; i <= 5; i++){
}
System.out.println("*****");
for (int i = 1; i <= 5; i++){
}
System.out.print("*");
System.out.println( );
System.out.print("*");System.out.print("*");
System.out.print("*");System.out.print("*");
for (int i = 1; i <= 5; i++){
}
for (int j = 1; j <= 5; j++){
} System.out.print("*");
System.out.println( );
Allowing the user to fix the size of the square
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
Allowing the user to fix the size of the square
* * *
* * *
* * *
for (int i = 1; i <= 5 ; i++) { for (int j = 1; j <= 5 ; j++) {
System.out.print("*"); } System.out.println( );}
System.out.println("Size of square?");num = sc.nextInt();
num; i++)
num; j++)
Running the program
Size of square?
8
* * * * * * * ** * * * * * * ** * * * * * * ** * * * * * * ** * * * * * * ** * * * * * * ** * * * * * * ** * * * * * * *
Size of square?
3
* * ** * ** * *
Running the program
Non-fixed repetitions
The ‘while’ loop
3422
Error!
7343
Error!
1234
CASH
System.out.print(“Enter PIN: ”);
pin = sc.nextInt( );
System.out.print(“Invalid PIN, please re-enter: ”);
pin = sc.nextInt( );
System.out.println(“Correct PIN, have some money! ”);
while ( ){
}
*/ test goes here */pin != 1234
RUN
Enter PIN: 1234
Correct PIN, have some money!
5555
4321
Correct PIN, have some money!
Invalid PIN, please re-enter:
Invalid PIN, please re-enter: 1234
Input Validation
import java.util.*;public class DisplayResult{ public static void main(String[] args) { int mark; Scanner sc = new Scanner (System.in); System.out.println("What exam mark did you get?"); mark = sc.nextInt(); if (mark >= 40) { System.out.println("Congratulations, you passed"); } else { System.out.println("I‘m sorry, but you failed"); } System.out.println("Good luck with your other exams"); }}
CHECK MARK HERE
System.out.println("What exam mark did you get?");
mark = sc.nextInt( );
if (mark >= 40) { System.out.println("Congratulations, you passed");}else{ System.out.println("I‘m sorry, but you failed");}System.out.println("Good luck with your other exams");
CHECK MARK HERESystem.out.println(“Invalid mark: please re-enter“);mark = sc.nextInt( );
while ( )
{
}
mark > 100mark < 0 ||
Sample Program Run
What exam mark did you get?
101
Invalid mark: please re-enter
-10
Invalid mark: please re-enter
10
I'm sorry, but you failed
Good luck with your other exams
The ‘do…while’ loop
// some code here
// some code here
// some code goes here
{
}
while ( /*test goes here*/ )do
;
import java.util.*;
public class FindCost4{ public static void main(String[] args ) {
double price, tax;Scanner sc = new Scanner(System.in);
}}
// code for rest of program here
char reply;
System.out.print (“Enter another product (y/n)?: ”);reply = sc.next().charAt(0);
{
} while ( );
?
reply == ‘y’ reply == ‘Y’||
do
Sample Program Run
*** Product Price Check ***Enter initial price: 50Enter tax rate: 10 Cost after tax = 55.0 Enter another product (y/n)?: y
*** Product Price Check ***Enter initial price: 70Enter tax rate: 5
Cost after tax = 73.5 Enter another product (y/n)?: n
Menu Driven Programs
*** Product Price Check ***
[1] Enter Price
[2] Enter tax
[3] Calculate Cost
[4] Quit
Enter choice [1-4]: 1
Enter initial price: 12.5
*** Product Price Check ***
[1] Enter Price
[2] Enter tax
[3] Calculate Cost
[4] Quit
Enter choice [1-4]: 1
Enter initial price: 100
*** Product Price Check ***
[1] Enter Price
[2] Enter tax
[3] Calculate Cost
[4] Quit
Enter choice [1-4]: 2
Enter tax rate: 12.5
*** Product Price Check ***
[1] Enter Price
[2] Enter tax
[3] Calculate Cost
[4] Quit
Enter choice [1-4]: 3
Cost = 112.5
*** Product Price Check ***
[1] Enter Price
[2] Enter tax
[3] Calculate Cost
[4] Quit
Enter choice [1-4]: 4
Goodbye!
Menu Driven Timetable Program
*** Lab Times ***
[1] TIME FOR GROUP A
[2] TIME FOR GROUP B
[3] TIME FOR GROUP C
[4] QUIT
Enter choice [1-4]: 2
1.OOp.m
*** Lab Times ***
[1] TIME FOR GROUP A
[2] TIME FOR GROUP B
[3] TIME FOR GROUP C
[4] QUIT
Enter choice [1-4]: 5
Options 1-4 only!
*** Lab Times ***
[1] TIME FOR GROUP A
[2] TIME FOR GROUP B
[3] TIME FOR GROUP C
[4] QUIT
Enter choice [1-4]: 1
10.OOa.m
*** Lab Times ***
[1] TIME FOR GROUP A
[2] TIME FOR GROUP B
[3] TIME FOR GROUP C
[4] QUIT
Enter choice [1-4]: 3
11.00a.m
*** Lab Times ***
[1] TIME FOR GROUP A
[2] TIME FOR GROUP B
[3] TIME FOR GROUP C
[4] QUIT
Enter choice [1-4]: 4
Goodbye
// code to declare variables
System.out.println(“[1] TIME FOR GROUP A”);System.out.println(“[2] TIME FOR GROUP B”);System.out.println(“[3] TIME FOR GROUP C”);System.out.println(“[4] QUIT”);
System.out.print(“Enter choice [1-4]: “);
choice = sc.next().charAt(0);switch(choice){
}
case ‘1’:case ‘2’:case ‘3’:
default:
System.out.println(“10.00a.m”);System.out.println(“1.00p.m”);System.out.println(“11.00a.m”);
System.out.println(“Options 1-4 only!”);
{
} choice != ‘4’
case ‘4’: System.out.println(“Goodbye”);
// CODE TO DISPLAY MENU
// CODE TO ENTER CHOICE
// CODE TO PROCESS CHOICE
do
while( );
char choice;
break;break;
break;break;
public class IterationQ3
{
public static void main(String[] args)
{
for(int i=1; i<=10; i++)
{
if (i%2 == 0)
{
System.out.println(i);
}
}
}
}
2
4
6
8
10
1i = 234567891011
Assignment
Aaron’s Shop
Guitar (£100) - How many?:
Aaron’s Shop
Guitar (£100) - How many?: 2
Aaron’s Shop
Guitar (£100) - How many?: 2
Total cost required?
Aaron’s Shop
Guitar (£100) - How many?: 2
Total cost required? n
Aaron’s Shop
Guitar (£100) - How many?: 2
Total cost required? n
Piano (£900) - How many?:
Aaron’s Shop
Guitar (£100) - How many?: 2
Total cost required? n
Piano (£900) - How many?: 1
Aaron’s Shop
Guitar (£100) - How many?: 2
Total cost required? n
Piano (£900) - How many?: 1
Total cost required?
Aaron’s Shop
Guitar (£100) - How many?: 2
Total cost required? n
Piano (£900) - How many?: 1
Total cost required? y
Aaron’s Shop
Guitar (£100) - How many?: 2
Total cost required? n
Piano (£900) - How many?: 1
Total cost required? y
Total cost so far = £1100
Aaron’s Shop
Guitar (£100) - How many?: 2
Total cost required? n
Piano (£900) - How many?: 1
Total cost required? y
Total cost so far = £1100
Mike (£45) - How many?:
Aaron’s Shop
Guitar (£100) - How many?: 2
Total cost required? n
Piano (£900) - How many?: 1
Total cost required? y
Total cost so far = £1100
Mike (£45) - How many?: 0
Using a for loop, write a program that displays a "6 times" multiplication table; the output should look like this:
1 6 = 62 6 = 123 6 = 184 6 = 245 6 = 306 6 = 367 6 = 428 6 = 489 6 = 54
10 6 = 6011 6 = 6612 6 = 72
Using a for loop, write a program that displays a "6 times" multiplication table; the output should look like this:
1 6 = 62 6 = 123 6 = 184 6 = 245 6 = 306 6 = 367 6 = 428 6 = 489 6 = 54
10 6 = 6011 6 = 6612 6 = 72