Control statements

Post on 09-Aug-2015

27 views 2 download

Transcript of Control statements

Control Statements

Unit1-Chapter4

Contents

• Input charecters from keyboard• if statement• Nested if ‘s• If else if ladder• Switch statement• Nested switch statement• For loop statement• While loop• Do while loop• Break• Continue• Nested loops

Input characters from keyboard

• In order to read data from keyboard from user, we use System.in.read()

• System.in is an input object attached to the keyboard• read() method waits until the user presses key and then

return the result.• The character is returned as an integer so it must be

casted back into a character and should be stored in a character variable

• By default the console input is line buffered.• Buffer refers to small portion of memory that is used to

hold the characters before they are read by the program

• When the user presses Enter then the value from buffer will be sent to your program.

Import java.io.*;class KeyBoardInput{public static void main(String args[]) throws IOException{

char ch;System.out.println("Press a key followed by a letter:");ch=(char) System.in.read();System.out.println("Enter letter is :"+ch);

}//end of main}//end of class

The if statement

if(condition)

{

statement;

}

class IfExam {

public static void main(String args[]){ int x = 10; if( x < 20 ){ System.out.print("This is if

statement"); } }}

If else statement

public class IfElseExam { public static void

main(String args[]){ int x = 30; if( x < 20 ){ System.out.print("This

is if statement"); }else{ System.out.print("This

is else statement"); } }}

if(condition)

{

statement;

}

else

{

statement;

}

The if else if ladderif(condition)

Statement;else if(condition)

Statement;else if(Condition)

Statement;….else

Statement;

class IfElseIfLadder { public static void main(String args[]){ int x = 30; if( x == 10 ) System.out.print("Value of X is 10"); else if( x == 20 ) System.out.print("Value of X is 20"); else if( x == 30 ) System.out.print("Value of X is 30"); else System.out.print("This is else

statement"); }}

Nested If statements

• An if statement that is the target of another if or elseclass NestedIF { public static void main(String args[]){ int x = 30, y = 10; if( x == 30 ){ if( y == 10 ) System.out.print("X = 30 and Y = 10"); else

System.out.println("Y is not 10”); } }}

Switch statement

• It provides multi way branch• Gives chance to programmer to select among several

alternatives.• The value of expression is evaluated against list of

constants• When a match is found, the statement sequence

associated with that is executed.

switch(expression){ case constant1 :

Statements break; //optional

case constant2 : Statements break;//optional

…… default : Statements }

class Result { public static void main(String args[]){ char grade = 'C'; switch(grade) { case 'A' : System.out.println("Excellent!"); break; case 'B' : case 'C' :System.out.println("Well done"); break; case 'D' :System.out.println("You

passed"); case 'F' :System.out.println("Better try

again"); break; default : System.out.println("Invalid

grade"); } System.out.println("Your grade is " +

grade); }}

Nested switch statement• Switch part of the

statement sequence of an outer switch

• Even if the case constants of inner and outer switch statements contain common values no conflicts will arise

class NestedSwitchExample { public static void main(String[] args) { int i = 0,j = 1; switch(i) { case 0:switch(j) {

case 0: System.out.println("i is 0, j is 0"); break;

case 1: System.out.println("i is 0, j is 1"); break;

default: System.out.println("nested default case!!");

}//end of inner switch break; default: System.out.println("No matching case

found!!"); } //end of outer switch }//end of main}//end of class

The For loopfor(intialization;condition;iteration)

{

Statement;

}

class ForLoop {

public static void main(String args[]) {

for(int x = 1; x < 5; x++) {

System.out.println("value of x : " + x );

}

}

}

Some variations of for loop

• Multiple loop control varaibles can be used.class Comma{public static void main(String args[]){

int i,j;for(i=0,j=10;i<j;i++,j--)

System.out.println("i="+i+" j="+j); }//end of main}//end of class

• Condition controlling variable can be any valid boolean expression

import java.io.*;

class ForTest {

public static void main(String args[]) throws IOException {

for(int x = 0; (char)System.in.read() !='S'; x++)

System.out.println("Pass #" + x );

}

}

• Missing pieces• In java, any or all of the initialization, condition or

iteration portions of the for loop can be blank.class Empty { public static void main(String args[]) { int x = 0; for(;x<10;) { System.out.println("Pass #" + x );

x++; } }}

• Infinite loop-loop that never terminates

• For by leaving the conditional expression emptyfor(; ;)

{

}

Loops with no body

• Body of the for loop can be empty• Null statement is syntactically valid• Body less loops are less often used.class Nobody{

public static void main(String args[]){

int i,sum=0;for(i=1;i<=5;sum+=i++); //sum+=i and then i++System.out.println(“Sum is “+sum);

}}

Declaring loop control variables inside the for loop

• Variable that controls a for loop used inside the for loop is needed only for the purposes of the loop and not used elsewhere

• In this case , it is better to declare the variables inside the initialization portion of the for loop.

class ForVar{public static void main(String args[]){

int sum=0,fact=1;for(int i=1;i<=5;i++)

{sum+=i;fact*=i;

}//end of for loopSystem.out.print("Sum:"+sum+"\nFactorial :"+fact);

}//end of main}//end of class

Enhanced for loop

for (datatype variable: array_name) {//body of the for loop}

class EnhancedForLoop {public static void main(String[] args) { int primes[] = { 2, 3, 5, 7, 11, 13, 17}; for (int t: primes) System.out.println(t); }}

class EnhancedForLoop1{ public static void main(String[] args) { String languages[] = { "C", "C++", "Java", "Python", "Ruby"}; for (String sample: languages) { System.out.println(sample); } }}

While loop

while(condition)

statements;• Where statements may be single statement or block of

statements.• The condition may be any valid boolean expression• The loop repeats when the condition is true, when it

becomes false, program control passes to line immediately after the loop.

class WhileDemo{

public static void main(String args[]){

char ch='a';

while(ch<='d'){

System.out.println(ch);

ch++;

}//end of while loop

}//end of main

}//end of class

Do while loop

do{

Statements;

}while(condition);

• It will execute as long as condition is true.

import java.io.*;

class DWdemo

{

public static void main(String args[]) throws IOException

{

char ch='a';

do

{

System.out.println(ch);

ch++;

}while(ch!='d');

}

}

Break statement• When a break statement is encountered inside a loop,

the loop is terminated and program resumes at the next statement followed by the loop.

class BreakDemo{

public static void main(String args[]){

int num=100;

for(int i=0;i<num;i++)

{

if(i*i>=num)

break;

System.out.print(i+ " ");

}

System.out.print("Loop complete");

}

}

Use break as goto statementclass BreakGoto{

public static void main(String args[]){

int i;

for(i=1;i<4;i++)

{

one: {

two:{

three:{System.out.println("\n i is "+i);

if(i==1) break one;

if(i==2) break two;

if(i==3) break three;

//this is never executed

System.out.print("wrong statement");

}System.out.println("After block three");}System.out.println("After block two");

}System.out.println("After block one");

}System.out.println("After for statement");

}

}

Use continue

• The continue statement forces the next iteration of the loop take place, skipping the code between itself and conditional expression that controls the loop.

• Continue is compliment of break statement

class ContinueDemo{

public static void main(String args[]){

int i;

for(i=0;i<=10;i++)

{

if((i%2)!=0) continue;

System.out.println(i);

}

}

}

Nested loops

• One loop nested inside of another loop

• Nested for loop to find the factors of the numbers from 2 to 20

class FindFac{

public static void main(String args[]){

for(int i=2;i<=20;i++){

System.out.print("Factors of "+i+" : ");

for(int j=2;j<i;j++)

if((i%j)==0) System.out.print(j+" ");

System.out.println();

}

}

}