* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Lec. 01: Java Fundamentals
Survey
Document related concepts
Abstraction (computer science) wikipedia , lookup
Programming language wikipedia , lookup
Functional programming wikipedia , lookup
Scala (programming language) wikipedia , lookup
Object-oriented programming wikipedia , lookup
Falcon (programming language) wikipedia , lookup
Go (programming language) wikipedia , lookup
Reactive programming wikipedia , lookup
Java syntax wikipedia , lookup
Java (programming language) wikipedia , lookup
One-pass compiler wikipedia , lookup
Indentation style wikipedia , lookup
Java performance wikipedia , lookup
C Sharp syntax wikipedia , lookup
Transcript
Java Programming JAVA PROGRAMMING 2 CH 03: CONTROL STATEMENTS 0 if, for loop (review) switch, while, do while break, continue CONTENT Condition construct: if [review] Condition construct: switch Iteration construct: for [review] Iteration construct: while and do-while Nested constructs Special control instructions: break and continue Java Programming 1 CATEGORIES OF FLOW CONTROL Sequential Selection Selection is the flow type where one path out of a number of possibilities is taken. Iteration Java Programming Sequential is the flow type where instructions are executed one after another, from top to bottom. Iteration is the flow type where one or more instructions is executed repeatedly if certain conditions are fulfilled. Transfer Transfer is the flow type where the point of execution jumps to a different point in the program. Using transfer is considered as a poor programming style and makes the code maintenance difficult. Java only supports the forward transfer, which transfer the execution point to a point beyond the current execution point. Sometimes forward transfer makes the code less complex. 2 if-CONSTRUCT Syntax form if(<condition>) statement else statement if and else parts control a single statement. Java Programming If more than one statement needed to be controlled, use code block. The else part is optional. The else part must be associated with an if-part if it exists. if( i > 0 ) a++; // this if statement is terminated here b++; // since the target of if statement is a single statement else c++; // if( i > 0 ) statement is terminated here // no if part to match, so it’s illegal The condition expression must be a boolean expression. If the conditional expression is true, the target of the if will be executed; otherwise, if it exists, the target of the else will be executed. 3 FLOWCHART FOR if-CONSTRUCT Java Programming <condition> false true Statement Statement 4 Next statement NESTED if-CONSTRUCT A nested if-construct is an if statement that is the target of another if or else. An else statement always refers to the nearest if statement that is within the same block as the else and not already associated with an else. Java Programming 5 EXAMPLES OF NESTED IF-CONSTRUCT Example 1 Example 2 Java Programming if(i == 10) { if(j < 20) a = b; if(k > 100) c = d; else a = c; // this else refers to if(k > 100) } else a = d; // this else refers to if(i == 10) Java’s syntax is free of position! Using proper indentation makes programs clearer! if(i == 10) { if(j < 20) { a = b; if(k > 100) c = d; } else a = c; // this else refers to if(j<20) } else a = d; // this else refers to if(i == 10) 6 switch-CONSTRUCT The switch-construct enables a program to select among several alternatives. Syntax form Java Programming switch(<expression>) { case <constant1>: statement sequence break; case <constant2>: statement sequence break; case <constant3>: statement sequence break; … default: statement sequence } 7 Executing switch-CONSTRUCT Evaluating <expression> and comparing the result sequentially, from top to bottom, with constants following case-clauses. When a match is found, the statements associated with that case are executed until the break is encountered or, in the case of default or the last case, until the end of the switch is reached. The default statement sequence, if it exists, is executed if no case constant matches the expression. Java Programming The default-clause is optional. If default-clause is not present, no action takes place if all matches fail. 8 SYNTAX RULES FOR switch-CONSTRUCT Prior to JDK 7, the <expression> controlling the switch must be of type byte, short, int, char, or enum. Beginning with JDK 7, <expression> can also be of type String. Each value specified in the case clauses must be a unique constant expression. Java Programming A constant expression is a expression which can be evaluated during the compiling time. The type of each value specified in the case clauses must be compatible with the type of <expression> . 9 DEMO SEGMENT FOR switch-CONSTRUCT Java Programming switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12 : System.out.println(“There are 31 days"); break; case 2: System.out.println(“There are 28 or 29 days"); break; case 4: case 6: case 9: case 11: System.out.println(“There are 30 days"); break; default: System.out.println("Invalid month."); } 10 LOOPING Java provides four types of looping (iteration) statements Traditional for while do-while Enhanced for Java Programming Supported after Java 2 version 1.5 All looping have 4 parts Initialization Iteration condition Body Termination condition 11 TRADITIONAL for-CONSTRUCT Syntax of while-statement Java Programming init-_exp for ( <init_exp> ; <test_exp> ; <post_exp> ) single-statement; Example Test_ exp int sum = 0; for(int count=0; count<=n; ++count ) { sum += count; } // count does not exist after this point false post-_exp true statement 12 Next statement MORE ON for-CONSTRUCT Fall. 2014 Java Programming The type of control variable can be any numeric types and char. The loop control variable can be modified by any amount in <post-exp>. It is a pre-condition looping. The <post-exp> is tested at the beginning of each loop. The code inside the loop may not be executed at all. The <init-exp> and <post-exp> may consist of more than one expression separated by comma. int i, j; for(i=0, j=i+10; i < j; i++, j--) System.out.println("i and j: " + i + " " + j); 13 MORE ON for-CONSTRUCT The <test-exp> must be a boolean expression. It does not need to involve the loop control variable. Java Programming All of the <init-exp> , <test-exp> and <post-exp> are option, but all three semicolons are not. Missing <test-exp> means the result of <test-exp> is always true. The simplest for-construct for(;;); will perform nothing for ever. When you declare a variable inside a for loop, the scope of that variable ends when the for statement does. for( int i = 0; i < 100; i++) sum += i; System.out.print(sum / i); // illegal since i is not declared 14 while-CONSTRUCT Example int sum = 0; int count = 0; while ( count <= n ) { sum += count; count++; } The while statement is a pre-test looping. <condition> false Java Programming Syntax of while statement while ( <condition> ) single-statement; true statement Next statement 15 do-while-CONSTRUCT Syntax of do-while statement Java Programming do single-statement; while ( <condition> ); statement Example int sum = 0; int count = 0; do { sum += count; count++; } while ( count <= n ); false <condition> true The do-while statement is a post-test looping. Next statement 16 break STATEMENT The break statement is used to force an immediate exit from a loop enclosing the statement, bypassing any remaining code in the body of the loop and the loop’s conditional test. The break statement can be only used within a loop body or the body of switch-construct. Java Programming 17 DEMO PROGRAM FOR BREAK STATEMENT Java Programming // Using break with nested loops. class Break3 { public static void main(String args[]) { for(int i=0; i<3; i++) { System.out.println("Outer loop count: " + i); System.out.print(" Inner loop count: "); int t = 0; while(t < 100) { if(t == 10) break;//terminate while loop if t is 10 System.out.print(t + " "); t++; } System.out.println(); } System.out.println("Loops complete."); } } 18 break STATEMENT WITH LABEL The break statement with label can be used to terminate the execution of a code block. Syntax form for break statement with label break <label>; A label is the identifier used to identify a code block or a statement. Syntax form for labeling code block <label>: { <statement sequences> } When this form of break executes, control is transferred out of the named code block or statement. The labeled code block or statement must enclose the break statement, but it does not need to be the immediately enclosing block. This means that you can use a labeled break statement to exit from a set of nested blocks. Java Programming The code block terminated by using a break statement with label does not need to be the body of loop or switch. 19 DEMO PROGRAM FOR break STATEMENT WITH LABEL Fall. 2014 // Using break with a label. class Break4 { public static void main(String args[]) { int i; for(i=1; i<4; i++) { one: { two: { three: { System.out.println("\ni is " + i); if(i==1) break one; if(i==2) break two; if(i==3) break three; System.out.println("won't print"); // this is never reached } System.out.println("After block three."); } System.out.println("After block two."); } System.out.println("After block one."); 20 } System.out.println("After for."); } } Java Programming TRY THIS … Fall. 2014 class Break6 { public static void main(String args[]) { int x=0, y=0; // here, put label before for statement. stop1: for(x=0; x < 5; x++) { for(y = 0; y < 5; y++) { if(y == 2) break stop1; // stop the for loop System.out.println("x and y: " + x + " " + y); } } System.out.println(); // now, put label immediately before { for(x=0; x < 5; x++){ stop2: { for(y = 0; y < 5; y++) { if(y == 2) break stop2; // stop the body of for, not for System.out.println("x and y: " + x + " " + y); } } } 21 } } Java Programming continue-CONSTRUCT The continue statement forces the next iteration of the loop to take place, skipping any code between itself and the conditional expression that controls the loop. In while and do-while loops, a continue statement will cause control to continues the loop by directly evaluating the <test-exp>. In the case of the for, the <post-exp> of the loop is evaluated, then the loop continues by evaluating the <test-exp>. Java Programming 22 DEMO PROGRAM FOR continue-CONSTRUCT // continuing the next loop System.out.println(i); } } } Java Programming // Use continue. class ContDemo { public static void main(String args[]) { int i; // print even numbers between 0 and 100 for(i = 0; i<=100; i++) { if((i%2) != 0) continue; // skipping the println and The boolean expression is true for 23 odd number. continue STATEMENT WITH LABEL The continue may specify a label to describe which enclosing loop to continue. The statement labeled by a label used with continue statement must be a loop statement. Java Programming 24 DEMO PROGRAM FOR continue STATEMENT WITH LABEL Java Programming // Use continue with a label. class ContToLabel { public static void main(String args[]) { outerloop: for(int i=1; i < 10; i++) { System.out.print("\nOuter loop pass " + i + ", Inner loop: "); for(int j = 1; j < 10; j++) { if(j == 5) continue outerloop; // continue outer loop System.out.print(j); } } } } 25