180 likes | 190 Views
Control Structures. Sequential Execution. x = keyBoard.nextInt();. statement. statement. y = 2*x - 3;. statement. System.out.println(x);. …. …. System.out.println(y);. statement. Selecting Execution Route. ?. true. statement. false. if(?){ statement; }.
E N D
Sequential Execution x = keyBoard.nextInt(); statement statement y = 2*x - 3; statement System.out.println(x); … … System.out.println(y); statement
Selecting Execution Route ? true statement false if(?){ statement;}
Selecting Execution Route ? true statement _1 false statement_2 if(?){ statement_1;}else{ statement_2;}
for Loops Initializecounter • Referred to as the “counting” loop • Parts of a for-loop • Initialize and declare counter section • Test counter section • Update counter section • Loop body section Test counter false true statement Updatecounter
for Loops for(initialize; test; update){ body} for(initialize_variable; test_variable; change_variable) { //body of loop goes here }
//display all divisors of a given positive integer //N = positive integer //d is a divisor of N input N d = 1 while d less than or equal to N{ if(d divides evenly into N){ print d } increment d by one }
input N d = 1 while d less than or equal to N{ if(d divides evenly into N){ print d } increment d by one } Bench Test: N d d <= N? d divdes N? output ============================================================== 10 1 yes yes 1 ------------------------------------------------------------- 2 yes yes 2 ------------------------------------------------------------- 3 yes no - ------------------------------------------------------------- 4 yes no - ------------------------------------------------------------- 5 yes yes 5 ------------------------------------------------------------- 6 yes no - ------------------------------------------------------------- 7 yes no - ------------------------------------------------------------- 8 yes no - ------------------------------------------------------------- 9 yes no - ------------------------------------------------------------- 10 yes yes 10 ------------------------------------------------------------- 11 no
Remember toupdatej Contrasting Loops j = 1;while(j<=5){ System.out.println(“Hello”); j = j + 1;} for(int j=1; j<=5; j=j+1){ System.out.println(“Hello”);}
Arithmetic Sequences • a = first term • d = common difference • n = number of terms • Sequence:a, a+d, a+2d, …, a+(n-1)d
Code outCnt = 0; for(int k=0; k<n; k++){ if(outCnt != 5) System.out.printf("%5d", a + k*d); else{ System.out.printf("%n%5d", a + k*d); outCnt = 0; } outCnt++; }
Alternate Code outCnt = 0; for(int k=a; k<a+n*d; k=k+d){ if(outCnt != 5) System.out.printf("%5d", k); else{ System.out.printf("%n%5d", k); outCnt = 0; } outCnt++; }
do-while Loops • Bottom-test loop • Always executesthe body at least once • Loops until the Test? returns false statement Test? true false
do-while Loops do{ statement;}while(?); Bottom-test loop while(?){ statement;} Top-test loop
Premature Loop Exit • break • Used to exit an enclosing loop statement • Used to exit a switch statement x = keyBoard.nextInt();while(x<=100){ System.out.println(x); if(x % 4 == 0) break; x = x + 7;}
switch Statement • Used in place of a series of if-else if-else ifs • When the test produces an integer value if(month==1){ …}else if(month==2){ …}… switch(month){ case 1: … break; case 2: … case 3: … break; … default:}