Control Flow Overview
In program execution, the order of statement execution directly impacts the outcome. Therefore, understanding the flow of execution and controlling it is essential for implementing desired functionalities.
Sequential Execution
Statements execute in the order they are written:
public static void main(String[] args) {
System.out.println(1);
System.out.println(2);
System.out.println(3);
}
Conditional Statemenst
If Statement
The if statement evaluates a boolean expressoin:
if (condition) {
// execute if condition is true
}
Example:
public static void main(String[] args) {
System.out.println("Start");
int a = 10;
int b = 20;
if (a == b) {
System.out.println("a equals b");
}
int c = 10;
if (a == c) {
System.out.println("a equals c");
}
System.out.println("End");
}
If-Else Statement
if (condition) {
// execute if condition is true
} else {
// execute if condition is false
}
Example:
public static void main(String[] args) {
int num = 1;
if (num % 2 == 0) {
System.out.println("Even number");
} else {
System.out.println("Odd number");
}
System.out.println("End");
}
If-Else-If Chain
if (condition1) {
// execute if condition1 is true
} else if (condition2) {
// execute if condition2 is true
} else {
// execute if all conditions are false
}
Example:
public static void main(String[] args) {
int x = 5;
int y;
if (x >= 3) {
y = 2 * x + 1;
} else if (x >= -1 && x < 3) {
y = 2 * x;
} else {
y = 2 * x - 1;
}
System.out.println("y value is: " + y);
}
Switch Statement
switch (expression) {
case value1:
// execute
break;
case value2:
// execute
break;
default:
// execute
break;
}
Example:
public static void main(String[] args) {
int day = 3;
switch (day) {
case 1:
System.out.println("Monday");
break;
case 2:
System.out.println("Tuesday");
break;
case 3:
System.out.println("Wednesday");
break;
default:
System.out.println("Invalid day");
}
}
Loop Structures
Loops repeat code execution based on a condition. Proper loop termination is crucial to avoid infinite loops.
For Loop
for (initialization; condition; increment) {
// loop body
}
Example: Sum of even numbers from 1 to 100
public static void main(String[] args) {
int sum = 0;
for (int i = 2; i <= 100; i += 2) {
sum += i;
}
System.out.println("Sum of even numbers: " + sum);
}
While Loop
initialization;
while (condition) {
// loop body
increment;
}
Example: Print Hello World 10 times
public static void main(String[] args) {
int counter = 0;
while (counter < 10) {
System.out.println("Hello World" + (counter + 1));
counter++;
}
}
Do-While Loop
counter = 0;
do {
// loop body
counter++;
} while (condition);
Example:
public static void main(String[] args) {
int count = 0;
do {
System.out.println("Hello World" + (count + 1));
count++;
} while (count < 10);
}
Loop Control
Break Statement
Used to exit loops or switch statements:
for (int i = 1; i <= 10; i++) {
if (i == 3) {
break;
}
System.out.println("Hello World" + i);
}
Continue Statement
Skips the current iteration:
for (int i = 1; i <= 10; i++) {
if (i == 3) {
continue;
}
System.out.println("Hello World" + i);
}
Nested Loops
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 8; j++) {
System.out.print("*");
}
System.out.println();
}
Method Overloading
Multiple methods with the same name but different parameters:
public static boolean isEqual(byte a, byte b) {
return a == b;
}
public static boolean isEqual(short a, short b) {
return a == b;
}
public static boolean isEqual(int a, int b) {
return a == b;
}
public static boolean isEqual(long a, long b) {
return a == b;
}
Method overloads can differ in:
- Number of parameters
- Parameter types
- Order of parameters
The JVM selects the correct method based on parameter types.