SlideShare a Scribd company logo
1 of 38
Download to read offline
Programming in Java
Lecture 4: Control Structures
By
Ravi Kant Sahu
Asst. Professor, LPU
Selection StatementS
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
• Java supports two selection statements: if and switch.
if statement
if (condition) statement1;
else statement2;
• Each statement may be a single statement or a compound statement
enclosed in curly braces (block).
• The condition is any expression that returns a boolean value.
• The else clause is optional.
• If the condition is true, then statement1 is executed. Otherwise,
statement2 (if it exists) is executed.
• In no case will both statements be executed.
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
Nested ifs
• A nested if is an if statement that is the target of another
if or else.
• In nested ifs an else statement always refers to the
nearest if statement that is within the same block as the
else and that is not already associated with an else.
if (i == 10) {
if (j < 20) a = b;
if (k > 100) c = d; // this if is
else a = c; // associated with this else
}
else a = d; // this else refers to if(i == 10)
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
The if-else-if Ladder
• A sequence of nested ifs is the if-else-if ladder.
if(condition)
statement;
else if(condition)
statement;
else if(condition)
statement;
...
else
statement;
• The if statements are executed from the top to down.
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
switch
• The switch statement is Java’s multi-way branch statement.
• provides an easy way to dispatch execution to different parts of your code based
on the value of an expression.
• provides a better alternative than a large series of if-else-if statements.
switch (expression) {
case value1:
// statement sequence
break;
case value2:
// statement sequence
break;
...
case valueN:
// statement sequence
break;
default:
// default statement sequence
}
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
• The expression must be of type byte, short, int, or char.
• Each of the values specified in the case statements must
be of a type compatible with the expression.
• Each case value must be a unique literal (i.e. constant not
variable).
• Duplicate case values are not allowed.
• The value of the expression is compared with each of the
literal values in the case statements.
• If a match is found, the code sequence following that case
statement is executed.
• If none of the constants matches the value of the
expression, then the default statement is executed.
• The default statement is optional.
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
• If no case matches and no default is present, then no
further action is taken.
• The break statement is used inside the switch to terminate
a statement sequence.
• When a break statement is encountered, execution
branches to the first line of code that follows the entire
switch statement.
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
class SampleSwitch {
public static void main(String args[]) {
for(int i=0; i<6; i++)
switch(i) {
case 0:
System.out.println("i is zero.");
break;
case 1:
System.out.println("i is one.");
break;
case 2:
System.out.println("i is two.");
break;
default:
System.out.println("i is greater than 2.");
}
}
}Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
Nested switch Statements
• When a switch is used as a part of the statement sequence of
an outer switch. This is called a nested switch.
switch(count) {
case 1:
switch(target) { // nested switch
case 0:
System.out.println("target is zero");
break;
case 1: // no conflicts with outer switch
System.out.println("target is one");
break;
}
break;
case 2: // ...
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
Difference between ifs and switch
• switch can only test for equality, whereas if can evaluate any
type of Boolean expression. That is, the switch looks only for a
match between the value of the expression and one of its case
constants.
• A switch statement is usually more efficient than a set of
nested ifs.
• Note: No two case constants in the same switch can have
identical values. Of course, a switch statement and an
enclosing outer switch can have case constants in common.
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
IteratIon StatementS
(Loops)
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
Iteration Statements
• In Java, iteration statements (loops) are:
– for
– while, and
– do-while
• A loop repeatedly executes the same set of
instructions until a termination condition is
met.
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
While Loop
• While loop repeats a statement or block while its
controlling expression is true.
• The condition can be any Boolean expression.
• The body of the loop will be executed as long as the
conditional expression is true.
• When condition becomes false, control passes to the
next line of code immediately following the loop.
while(condition)
{
// body of loop
}
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
class While
{
public static void main(String args[]) {
int n = 10;
char a = 'G';
while(n > 0)
{
System.out.print(a);
n--;
a++;
}
}
}
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
• The body of the loop will not execute even once if the
condition is false.
• The body of the while (or any other of Java’s loops)
can be empty. This is because a null statement (one
that consists only of a semicolon) is syntactically
valid in Java.
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
do-while
• The do-while loop always executes its body at least once,
because its conditional expression is at the bottom of the
loop.
do {
// body of loop
} while (condition);
• Each iteration of the do-while loop first executes the body
of the loop and then evaluates the conditional expression.
• If this expression is true, the loop will repeat. Otherwise,
the loop terminates.
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
for Loop
for (initialization; condition; iteration)
{
// body
}
• Initialization portion sets the value of loop control variable.
• Initialization expression is only executed once.
• Condition must be a Boolean expression. It usually tests the
loop control variable against a target value.
• Iteration is an expression that increments or decrements the
loop control variable.
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
The for loop operates as follows.
• When the loop first starts, the initialization portion of
the loop is executed.
• Next, condition is evaluated. If this expression is true,
then the body of the loop is executed. If it is false, the
loop terminates.
• Next, the iteration portion of the loop is executed.
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
class ForTable
{
public static void main(String args[])
{
int n;
int x=5;
for(n=1; n<=10; n++)
{
int p = x*n;
System.out.println(x+"*"+n +"="+ p);
}
}
}
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
What will be the output?
class Loop
{
public static void main(String args[])
{
for(int i=0; i<5; i++);
System.out.println (i++);
}
}
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
Declaring loop control variable inside loop
• We can declare the variable inside the initialization
portion of the for.
for ( int i=0; i<10; i++)
{
System.out.println(i);
}
• Note: The scope of this variable i is limited to the for
loop and ends with the for statement.
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
Using multiple variables in a for loop
• More than one statement in the initialization and iteration
portions of the for loop can be used.
Example 1:
class var2 {
public static void main(String arr[]) {
int a, b;
b = 5;
for(a=0; a<b; a++) {
System.out.println("a = " + a);
System.out.println("b = " + b);
b--;
}
}
}
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
• Comma (separator) is used while initializing multiple loop
control variables.
Example 2:
class var21
{
public static void main(String arr[]) {
int x, y;
for(x=0, y=5; x<=y; x++, y--) {
System.out.println("x= " + x);
System.out.println(“y = " + y);
}
}
}
• Initialization and iteration can be moved out from for loop.
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
Example 3:
class Loopchk
{
public static void main(String arr[])
{
for(int i=1, j=5; i>0 && j>2; i++, j--)
System.out.println("i is: "+ i + "and j is: "+j);
}
}
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
For-Each Version of the for Loop
• Beginning with JDK 5, a second form of for was
defined that implements a “for-each” style loop.
• For-each is also referred to as the enhanced for loop.
• Designed to cycle through a collection of objects,
such as an array, in strictly sequential fashion, from
start to end.
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
for (type itr-var : collection) statement-block
• type specifies the type.
• itr-var specifies the name of an iteration variable that will
receive the elements from a collection, one at a time, from
beginning to end.
• The collection being cycled through is specified by
collection.
• With each iteration of the loop, the next element in the
collection is retrieved and stored in itr-var.
• The loop repeats until all elements in the collection have
been obtained.
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
class ForEach
{
public static void main(String arr[])
{
int num[] = { 1, 2, 3, 4, 5 };
int sum = 0;
for(int i : num)
{
System.out.println("Value is: " + i);
sum += i;
}
System.out.println("Sum is: " + sum);
}
}
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
Iterating Over Multidimensional Arrays
class ForEachMArray {
public static void main(String args[]) {
int sum = 0;
int num[][] = new int[3][5];
// give num some values
for(int i = 0; i < 3; i++)
for(int j=0; j < 5; j++)
num[i][j] = (i+1)*(j+1);
// use for-each for to display and sum the values
for(int x[] : num) {
for(int y : x) {
System.out.println("Value is: " + y);
sum += y;
}
}
System.out.println("Summation: " + sum);
}
}
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
Nested Loops
class NestedLoop
{
public static void main(String arr[])
{
int i, j;
for(i=0; i<10; i++)
{
for(j=i; j<10; j++)
System.out.print(“* ”);
System.out.println( );
}
}
} Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
Jump Statements
• Java supports three jump statements:
– break
– continue
– return
• These statements transfer control to another part of the
program.
• Break: break statement has three uses.
– terminates a statement sequence in a switch statement
– used to exit a loop
– used as a “civilized” form of goto
Note: Java does not have goto statement.
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
Example 1:
class BreakLoop
{
public static void main(String arr[])
{
for(int i=0; i<100; i++)
{
if(i == 10) break;
// terminate loop if i is 10
System.out.println("i: " + i);
}
System.out.println("Loop complete.");
}
}
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
• Java defines an expanded form of the break statement.
• By using this form of break, we can break out of one or
more blocks of code.
• These blocks need not be part of a loop or a switch. They
can be any block.
• Further, we can specify precisely where execution will
resume, because this form of break works with a label.
break label;
• When this form of break executes, control is transferred out of
the named block. The labeled block must enclose the break
statement.
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
class BreakLoop
{
public static void main(String arr[])
{
outer: for(int i=0; i<3; i++)
{
System.out.print("Pass " + i + ": ");
for(int j=0; j<100; j++)
{
if(j == 10) break outer; // exit both loops
System.out.print(j + " ");
}
System.out.println("This will not print");
}
System.out.println("Loops complete.");
}
} Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
Continue
• In while and do-while loops, a continue statement causes control to be
transferred directly to the conditional expression that controls the loop.
• In a for loop, control goes first to the iteration portion of the for
statement and then to the conditional expression.
• For all three loops, any intermediate code is bypassed.
• Example:
class Continue {
public static void main(String args[]){
for(int i=0; i<5; i++) {
System.out.println(i + " ");
if (i%2 == 0) continue;
System.out.println("No Continue");
}
}
}
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
• Similar to break statement, Continue may specify a label to describe
which enclosing loop to continue.
Example:
class ContinueLabel {
public static void main(String args[]) {
outer: for (int i=0; i<10; i++) {
for(int j=0; j<10; j++) {
if(j > i) {
System.out.println();
continue outer;
}
System.out.print(" " + (i * j));
}
}
System.out.println();
}
}
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
return
• The return statement is used to explicitly return from a
method.
• It causes program control to transfer back to the caller
of the method.
Example:
class Return {
public static void main(String args[]) {
boolean t = true;
System.out.println("Before the return.");
if(t) return; // return to caller
System.out.println("This won't execute.");
}
}
if(t) statement is necessary. Without it, the Java compiler
would flag an “unreachable code” error because the
compiler would know that the last println( ) statement
would never be executed.
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
Control structures in Java

More Related Content

What's hot

Lesson 02 python keywords and identifiers
Lesson 02   python keywords and identifiersLesson 02   python keywords and identifiers
Lesson 02 python keywords and identifiersNilimesh Halder
 
Decision making in JAVA
Decision making in JAVADecision making in JAVA
Decision making in JAVAHamna_sheikh
 
Type casting in java
Type casting in javaType casting in java
Type casting in javaFarooq Baloch
 
C programming decision making
C programming decision makingC programming decision making
C programming decision makingSENA
 
Class and object in c++
Class and object in c++Class and object in c++
Class and object in c++NainaKhan28
 
Operators and Expressions in Java
Operators and Expressions in JavaOperators and Expressions in Java
Operators and Expressions in JavaAbhilash Nair
 
Introduction to Python
Introduction to Python Introduction to Python
Introduction to Python amiable_indian
 
Python 3 Programming Language
Python 3 Programming LanguagePython 3 Programming Language
Python 3 Programming LanguageTahani Al-Manie
 
Python-02| Input, Output & Import
Python-02| Input, Output & ImportPython-02| Input, Output & Import
Python-02| Input, Output & ImportMohd Sajjad
 
10. switch case
10. switch case10. switch case
10. switch caseWay2itech
 
Python Tutorial | Python Tutorial for Beginners | Python Training | Edureka
Python Tutorial | Python Tutorial for Beginners | Python Training | EdurekaPython Tutorial | Python Tutorial for Beginners | Python Training | Edureka
Python Tutorial | Python Tutorial for Beginners | Python Training | EdurekaEdureka!
 

What's hot (20)

Java operators
Java operatorsJava operators
Java operators
 
Lesson 02 python keywords and identifiers
Lesson 02   python keywords and identifiersLesson 02   python keywords and identifiers
Lesson 02 python keywords and identifiers
 
Control statements in java
Control statements in javaControl statements in java
Control statements in java
 
Decision making in JAVA
Decision making in JAVADecision making in JAVA
Decision making in JAVA
 
Python Functions
Python   FunctionsPython   Functions
Python Functions
 
Strings in Java
Strings in JavaStrings in Java
Strings in Java
 
Type casting in java
Type casting in javaType casting in java
Type casting in java
 
C programming decision making
C programming decision makingC programming decision making
C programming decision making
 
Class and object in c++
Class and object in c++Class and object in c++
Class and object in c++
 
Python-Inheritance.pptx
Python-Inheritance.pptxPython-Inheritance.pptx
Python-Inheritance.pptx
 
Constructor in java
Constructor in javaConstructor in java
Constructor in java
 
Control statements in c
Control statements in cControl statements in c
Control statements in c
 
Operators and Expressions in Java
Operators and Expressions in JavaOperators and Expressions in Java
Operators and Expressions in Java
 
Introduction to Python
Introduction to Python Introduction to Python
Introduction to Python
 
Python 3 Programming Language
Python 3 Programming LanguagePython 3 Programming Language
Python 3 Programming Language
 
Python-02| Input, Output & Import
Python-02| Input, Output & ImportPython-02| Input, Output & Import
Python-02| Input, Output & Import
 
CONDITIONAL STATEMENT IN C LANGUAGE
CONDITIONAL STATEMENT IN C LANGUAGECONDITIONAL STATEMENT IN C LANGUAGE
CONDITIONAL STATEMENT IN C LANGUAGE
 
Python Tutorial Part 1
Python Tutorial Part 1Python Tutorial Part 1
Python Tutorial Part 1
 
10. switch case
10. switch case10. switch case
10. switch case
 
Python Tutorial | Python Tutorial for Beginners | Python Training | Edureka
Python Tutorial | Python Tutorial for Beginners | Python Training | EdurekaPython Tutorial | Python Tutorial for Beginners | Python Training | Edureka
Python Tutorial | Python Tutorial for Beginners | Python Training | Edureka
 

Similar to Control structures in Java

Similar to Control structures in Java (20)

05. Control Structures.ppt
05. Control Structures.ppt05. Control Structures.ppt
05. Control Structures.ppt
 
Exception handling
Exception handlingException handling
Exception handling
 
Keywords and classes
Keywords and classesKeywords and classes
Keywords and classes
 
Java keywords
Java keywordsJava keywords
Java keywords
 
Control structures
Control structuresControl structures
Control structures
 
Generics
GenericsGenerics
Generics
 
Operators in java
Operators in javaOperators in java
Operators in java
 
Multi threading
Multi threadingMulti threading
Multi threading
 
03 conditions loops
03   conditions loops03   conditions loops
03 conditions loops
 
Lecture - 5 Control Statement
Lecture - 5 Control StatementLecture - 5 Control Statement
Lecture - 5 Control Statement
 
Inheritance
InheritanceInheritance
Inheritance
 
Questions of java
Questions of javaQuestions of java
Questions of java
 
07 flow control
07   flow control07   flow control
07 flow control
 
Java interview questions 2
Java interview questions 2Java interview questions 2
Java interview questions 2
 
Java 2.pptx
Java 2.pptxJava 2.pptx
Java 2.pptx
 
Java chapter 3
Java chapter 3Java chapter 3
Java chapter 3
 
ch2 Python flow control.pdf
ch2 Python flow control.pdfch2 Python flow control.pdf
ch2 Python flow control.pdf
 
java notes.pdf
java notes.pdfjava notes.pdf
java notes.pdf
 
L22 multi-threading-introduction
L22 multi-threading-introductionL22 multi-threading-introduction
L22 multi-threading-introduction
 
Control statements
Control statementsControl statements
Control statements
 

More from Ravi_Kant_Sahu

More from Ravi_Kant_Sahu (17)

Common Programming Errors by Beginners in Java
Common Programming Errors by Beginners in JavaCommon Programming Errors by Beginners in Java
Common Programming Errors by Beginners in Java
 
Gui programming (awt)
Gui programming (awt)Gui programming (awt)
Gui programming (awt)
 
Event handling
Event handlingEvent handling
Event handling
 
Basic IO
Basic IOBasic IO
Basic IO
 
List classes
List classesList classes
List classes
 
Collection framework
Collection frameworkCollection framework
Collection framework
 
String handling(string buffer class)
String handling(string buffer class)String handling(string buffer class)
String handling(string buffer class)
 
String handling(string class)
String handling(string class)String handling(string class)
String handling(string class)
 
Packages
PackagesPackages
Packages
 
Array
ArrayArray
Array
 
Wrapper classes
Wrapper classesWrapper classes
Wrapper classes
 
Methods and constructors
Methods and constructorsMethods and constructors
Methods and constructors
 
Jdbc
JdbcJdbc
Jdbc
 
Classes and Nested Classes in Java
Classes and Nested Classes in JavaClasses and Nested Classes in Java
Classes and Nested Classes in Java
 
Swing api
Swing apiSwing api
Swing api
 
Genesis and Overview of Java
Genesis and Overview of Java Genesis and Overview of Java
Genesis and Overview of Java
 
L2 datatypes and variables
L2 datatypes and variablesL2 datatypes and variables
L2 datatypes and variables
 

Recently uploaded

Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 

Recently uploaded (20)

Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 

Control structures in Java

  • 1. Programming in Java Lecture 4: Control Structures By Ravi Kant Sahu Asst. Professor, LPU
  • 2. Selection StatementS Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 3. • Java supports two selection statements: if and switch. if statement if (condition) statement1; else statement2; • Each statement may be a single statement or a compound statement enclosed in curly braces (block). • The condition is any expression that returns a boolean value. • The else clause is optional. • If the condition is true, then statement1 is executed. Otherwise, statement2 (if it exists) is executed. • In no case will both statements be executed. Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 4. Nested ifs • A nested if is an if statement that is the target of another if or else. • In nested ifs an else statement always refers to the nearest if statement that is within the same block as the else and that is not already associated with an else. if (i == 10) { if (j < 20) a = b; if (k > 100) c = d; // this if is else a = c; // associated with this else } else a = d; // this else refers to if(i == 10) Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 5. The if-else-if Ladder • A sequence of nested ifs is the if-else-if ladder. if(condition) statement; else if(condition) statement; else if(condition) statement; ... else statement; • The if statements are executed from the top to down. Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 6. switch • The switch statement is Java’s multi-way branch statement. • provides an easy way to dispatch execution to different parts of your code based on the value of an expression. • provides a better alternative than a large series of if-else-if statements. switch (expression) { case value1: // statement sequence break; case value2: // statement sequence break; ... case valueN: // statement sequence break; default: // default statement sequence } Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 7. • The expression must be of type byte, short, int, or char. • Each of the values specified in the case statements must be of a type compatible with the expression. • Each case value must be a unique literal (i.e. constant not variable). • Duplicate case values are not allowed. • The value of the expression is compared with each of the literal values in the case statements. • If a match is found, the code sequence following that case statement is executed. • If none of the constants matches the value of the expression, then the default statement is executed. • The default statement is optional. Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 8. • If no case matches and no default is present, then no further action is taken. • The break statement is used inside the switch to terminate a statement sequence. • When a break statement is encountered, execution branches to the first line of code that follows the entire switch statement. Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 9. class SampleSwitch { public static void main(String args[]) { for(int i=0; i<6; i++) switch(i) { case 0: System.out.println("i is zero."); break; case 1: System.out.println("i is one."); break; case 2: System.out.println("i is two."); break; default: System.out.println("i is greater than 2."); } } }Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 10. Nested switch Statements • When a switch is used as a part of the statement sequence of an outer switch. This is called a nested switch. switch(count) { case 1: switch(target) { // nested switch case 0: System.out.println("target is zero"); break; case 1: // no conflicts with outer switch System.out.println("target is one"); break; } break; case 2: // ... Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 11. Difference between ifs and switch • switch can only test for equality, whereas if can evaluate any type of Boolean expression. That is, the switch looks only for a match between the value of the expression and one of its case constants. • A switch statement is usually more efficient than a set of nested ifs. • Note: No two case constants in the same switch can have identical values. Of course, a switch statement and an enclosing outer switch can have case constants in common. Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 12. IteratIon StatementS (Loops) Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 13. Iteration Statements • In Java, iteration statements (loops) are: – for – while, and – do-while • A loop repeatedly executes the same set of instructions until a termination condition is met. Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 14. While Loop • While loop repeats a statement or block while its controlling expression is true. • The condition can be any Boolean expression. • The body of the loop will be executed as long as the conditional expression is true. • When condition becomes false, control passes to the next line of code immediately following the loop. while(condition) { // body of loop } Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 15. class While { public static void main(String args[]) { int n = 10; char a = 'G'; while(n > 0) { System.out.print(a); n--; a++; } } } Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 16. • The body of the loop will not execute even once if the condition is false. • The body of the while (or any other of Java’s loops) can be empty. This is because a null statement (one that consists only of a semicolon) is syntactically valid in Java. Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 17. do-while • The do-while loop always executes its body at least once, because its conditional expression is at the bottom of the loop. do { // body of loop } while (condition); • Each iteration of the do-while loop first executes the body of the loop and then evaluates the conditional expression. • If this expression is true, the loop will repeat. Otherwise, the loop terminates. Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 18. for Loop for (initialization; condition; iteration) { // body } • Initialization portion sets the value of loop control variable. • Initialization expression is only executed once. • Condition must be a Boolean expression. It usually tests the loop control variable against a target value. • Iteration is an expression that increments or decrements the loop control variable. Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 19. The for loop operates as follows. • When the loop first starts, the initialization portion of the loop is executed. • Next, condition is evaluated. If this expression is true, then the body of the loop is executed. If it is false, the loop terminates. • Next, the iteration portion of the loop is executed. Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 20. class ForTable { public static void main(String args[]) { int n; int x=5; for(n=1; n<=10; n++) { int p = x*n; System.out.println(x+"*"+n +"="+ p); } } } Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 21. What will be the output? class Loop { public static void main(String args[]) { for(int i=0; i<5; i++); System.out.println (i++); } } Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 22. Declaring loop control variable inside loop • We can declare the variable inside the initialization portion of the for. for ( int i=0; i<10; i++) { System.out.println(i); } • Note: The scope of this variable i is limited to the for loop and ends with the for statement. Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 23. Using multiple variables in a for loop • More than one statement in the initialization and iteration portions of the for loop can be used. Example 1: class var2 { public static void main(String arr[]) { int a, b; b = 5; for(a=0; a<b; a++) { System.out.println("a = " + a); System.out.println("b = " + b); b--; } } } Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 24. • Comma (separator) is used while initializing multiple loop control variables. Example 2: class var21 { public static void main(String arr[]) { int x, y; for(x=0, y=5; x<=y; x++, y--) { System.out.println("x= " + x); System.out.println(“y = " + y); } } } • Initialization and iteration can be moved out from for loop. Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 25. Example 3: class Loopchk { public static void main(String arr[]) { for(int i=1, j=5; i>0 && j>2; i++, j--) System.out.println("i is: "+ i + "and j is: "+j); } } Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 26. For-Each Version of the for Loop • Beginning with JDK 5, a second form of for was defined that implements a “for-each” style loop. • For-each is also referred to as the enhanced for loop. • Designed to cycle through a collection of objects, such as an array, in strictly sequential fashion, from start to end. Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 27. for (type itr-var : collection) statement-block • type specifies the type. • itr-var specifies the name of an iteration variable that will receive the elements from a collection, one at a time, from beginning to end. • The collection being cycled through is specified by collection. • With each iteration of the loop, the next element in the collection is retrieved and stored in itr-var. • The loop repeats until all elements in the collection have been obtained. Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 28. class ForEach { public static void main(String arr[]) { int num[] = { 1, 2, 3, 4, 5 }; int sum = 0; for(int i : num) { System.out.println("Value is: " + i); sum += i; } System.out.println("Sum is: " + sum); } } Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 29. Iterating Over Multidimensional Arrays class ForEachMArray { public static void main(String args[]) { int sum = 0; int num[][] = new int[3][5]; // give num some values for(int i = 0; i < 3; i++) for(int j=0; j < 5; j++) num[i][j] = (i+1)*(j+1); // use for-each for to display and sum the values for(int x[] : num) { for(int y : x) { System.out.println("Value is: " + y); sum += y; } } System.out.println("Summation: " + sum); } } Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 30. Nested Loops class NestedLoop { public static void main(String arr[]) { int i, j; for(i=0; i<10; i++) { for(j=i; j<10; j++) System.out.print(“* ”); System.out.println( ); } } } Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 31. Jump Statements • Java supports three jump statements: – break – continue – return • These statements transfer control to another part of the program. • Break: break statement has three uses. – terminates a statement sequence in a switch statement – used to exit a loop – used as a “civilized” form of goto Note: Java does not have goto statement. Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 32. Example 1: class BreakLoop { public static void main(String arr[]) { for(int i=0; i<100; i++) { if(i == 10) break; // terminate loop if i is 10 System.out.println("i: " + i); } System.out.println("Loop complete."); } } Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 33. • Java defines an expanded form of the break statement. • By using this form of break, we can break out of one or more blocks of code. • These blocks need not be part of a loop or a switch. They can be any block. • Further, we can specify precisely where execution will resume, because this form of break works with a label. break label; • When this form of break executes, control is transferred out of the named block. The labeled block must enclose the break statement. Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 34. class BreakLoop { public static void main(String arr[]) { outer: for(int i=0; i<3; i++) { System.out.print("Pass " + i + ": "); for(int j=0; j<100; j++) { if(j == 10) break outer; // exit both loops System.out.print(j + " "); } System.out.println("This will not print"); } System.out.println("Loops complete."); } } Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 35. Continue • In while and do-while loops, a continue statement causes control to be transferred directly to the conditional expression that controls the loop. • In a for loop, control goes first to the iteration portion of the for statement and then to the conditional expression. • For all three loops, any intermediate code is bypassed. • Example: class Continue { public static void main(String args[]){ for(int i=0; i<5; i++) { System.out.println(i + " "); if (i%2 == 0) continue; System.out.println("No Continue"); } } } Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 36. • Similar to break statement, Continue may specify a label to describe which enclosing loop to continue. Example: class ContinueLabel { public static void main(String args[]) { outer: for (int i=0; i<10; i++) { for(int j=0; j<10; j++) { if(j > i) { System.out.println(); continue outer; } System.out.print(" " + (i * j)); } } System.out.println(); } } Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 37. return • The return statement is used to explicitly return from a method. • It causes program control to transfer back to the caller of the method. Example: class Return { public static void main(String args[]) { boolean t = true; System.out.println("Before the return."); if(t) return; // return to caller System.out.println("This won't execute."); } } if(t) statement is necessary. Without it, the Java compiler would flag an “unreachable code” error because the compiler would know that the last println( ) statement would never be executed. Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)