Presentation is loading. Please wait.

Presentation is loading. Please wait.

L EC. 03: C ONTROL STATEMENTS Fall. 2014 0 Java Programming.

Similar presentations


Presentation on theme: "L EC. 03: C ONTROL STATEMENTS Fall. 2014 0 Java Programming."— Presentation transcript:

1 L EC. 03: C ONTROL STATEMENTS Fall. 2014 0 Java Programming

2 C ONTENT  Using System.in object to input data  Definition of Java statements  Categories of flow control statements  Condition constructs: if and switch  Iteration constructs: for, while and do-while  Nested constructs  Special control instructions: break and continue Fall. 2014 1 Java Programming

3 A SIMPLE WAY FOR INPUTTING DATA  System.in is an object representing the input stream associated with the console input, i.e. the keyboard.  When it receives the read() message, it waits until the user presses a key and then returns the result to the message sender.  Browsing the methods defined in java.io.InputStream class!  The character returned from read() is an int, so it must be cast into a char to assign it to a char variable. Fall. 2014 2 Java Programming

4 E XAMPLE OF USING System.in // Read a character from the keyboard. class KbIn { public static void main(String args[]) throws java.io.IOException { char ch; for(;;) { System.out.print("Press a key followed by ENTER: "); ch = (char) System.in.read(); // get a char System.out.println("Your key is: " + ch); if(ch == ‘z’) break; } Fall. 2014 3 Java Programming This declaration will be discussed later! DO NOT remove it, otherwise, you will get error message.

5 J AVA STATEMENTS  A Java statement forms a complete unit of execution.  Each statement is terminated by a semicolon (;).  Types of statements  Expression statements  Declaration statements  Control flow statements (the major topic of this lecture) Fall. 2014 4 Java Programming

6 E XPRESSION STATEMENTS  A expression statement is one of the following expressions.  Assignment expressions  Any use of ++ or --  Method invocations  Object creation expressions  Examples  val = 3.2;  ++x;  System.out.println();  new Integer(3); Fall. 2014 5 Java Programming

7 D ECLARATION STATEMENTS  A declaration statement declares a variable.  Example  Double obj;  double dVal; Fall. 2014 6 Java Programming

8 C ATEGORIES OF FLOW CONTROL  Sequential  Sequential is the flow type where instructions are executed one after another, from top to bottom.  Selection  Selection is the flow type where one path out of a number of possibilities is taken.  Iteration  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. Fall. 2014 7 Java Programming

9 if - CONSTRUCT  Syntax form if( ) statement else statement  if and else parts control a single statement.  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.  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. Fall. 2014 8 Java Programming if( i > 0 ) a++; // this if statement is terminated here b++; // since the target of if statement is a single statement // if( i > 0 ) statement is terminated here else c++; // no if part to match, so it’s illegal

10 F LOWCHART FOR if - CONSTRUCT Fall. 2014 9 Java Programming Statement true Next statement false Statement

11 A GUESSING GAME // Guess the letter game. class Guess { public static void main(String args[]) throws java.io.IOException { char ch, answer = 'K'; System.out.println("I'm thinking of a letter between A and Z."); System.out.print("Can you guess it: "); // read a char from the keyboard ch = (char) System.in.read(); if(ch == answer) System.out.println("** Right **"); else System.out.println("...Sorry, you're wrong."); } Fall. 2014 10 Java Programming

12 N ESTED 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. Fall. 2014 11 Java Programming

13 E XAMPLES OF NESTED IF - CONSTRUCT  Example 1  Example 2 Fall. 2014 12 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) 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) Java’s syntax is free of position! Using proper indentation makes programs clearer!

14 switch - CONSTRUCT  The switch -construct enables a program to select among several alternatives.  Syntax form Fall. 2014 13 Java Programming switch( ) { case : statement sequence break; case : statement sequence break; case : statement sequence break; … default: statement sequence }

15 Executing switch - CONSTRUCT  Evaluating 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.  The default -clause is optional.  If default -clause is not present, no action takes place if all matches fail. Fall. 2014 14 Java Programming

16 S YNTAX RULES FOR switch - CONSTRUCT  Prior to JDK 7, the controlling the switch must be of type byte, short, int, char, or enum.  Beginning with JDK 7, can also be of type String.  Each value specified in the case clauses must be a unique constant expression.  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. Fall. 2014 15 Java Programming

17 D EMO SEGMENT FOR switch - CONSTRUCT 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."); } Fall. 2014 16 Java Programming

18 LOOPING  Java provides four types of looping (iteration) statements  Traditional for  while  do-while  Enhanced for Supported after Java 2 version 1.5  All looping have 4 parts  Initialization  Iteration condition  Body  Termination condition Fall. 2014 17 Java Programming

19 T RADITIONAL for - CONSTRUCT Fall. 2014 18 Java Programming  Syntax of while-statement for ( ; ; ) single-statement; Test_ exp statement true Next statement false init-_exp post-_exp Example int sum = 0; for(int count=0; count<=n; ++count ) { sum += count; } // count does not exist after this point

20 M ORE ON for - CONSTRUCT  The type of control variable can be any numeric types and char.  The loop control variable can be modified by any amount in.  It is a pre-condition looping.  The is tested at the beginning of each loop.  The code inside the loop may not be executed at all.  The and may consist of more than one expression separated by comma. Fall. 2014 19 Java Programming int i, j; for(i=0, j=i+10; i < j; i++, j--) System.out.println("i and j: " + i + " " + j);

21 M ORE ON for - CONSTRUCT  The must be a boolean expression.  It does not need to involve the loop control variable.  All of the, and are option, but all three semicolons are not.  Missing means the result of 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. Fall. 2014 20 Java Programming for( int i = 0; i < 100; i++) sum += i; System.out.print(sum / i); // illegal since i is not declared

22 while - CONSTRUCT Fall. 2014 21 Java Programming  Syntax of while statement while ( ) single-statement; statement true Next statement false Example int sum = 0; int count = 0; while ( count <= n ) { sum += count; count++; } The while statement is a pre-test looping.

23 do-while - CONSTRUCT Fall. 2014 22 Java Programming  Syntax of do-while statement do single-statement; while ( ); statement true Next statement false Example int sum = 0; int count = 0; if ( count <= n ) do { sum += count; count++; } while ( count <= n ); The do-while statement is a post-test looping.

24 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. Fall. 2014 23 Java Programming

25 D EMO PROGRAM FOR BREAK STATEMENT // 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."); } Fall. 2014 24 Java Programming

26 break STATEMENT WITH LABEL  The break statement with label can be used to terminate the execution of a code block.  The code block terminated by using a break statement with label does not need to be the body of loop or switch.  Syntax form for break statement with label break ;  A label is the identifier used to identify a code block or a statement.  Syntax form for labeling code block : { }  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. Fall. 2014 25 Java Programming

27 D EMO PROGRAM FOR break STATEMENT WITH LABEL // 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."); } System.out.println("After for."); } Fall. 2014 26 Java Programming

28 T RY THIS … 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); } Fall. 2014 27 Java Programming

29 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.  In the case of the for, the of the loop is evaluated, then the loop continues by evaluating the. Fall. 2014 28 Java Programming

30 D EMO PROGRAM FOR continue - CONSTRUCT // 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 // continuing the next loop System.out.println(i); } Fall. 2014 29 Java Programming The boolean expression is true for odd number.

31 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. Fall. 2014 30 Java Programming

32 D EMO PROGRAM FOR continue STATEMENT WITH LABEL // 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); } Fall. 2014 31 Java Programming


Download ppt "L EC. 03: C ONTROL STATEMENTS Fall. 2014 0 Java Programming."

Similar presentations


Ads by Google