Introduction
Control flow statements determine the order in which code is executed. They control the flow of program execution based on conditions and loops.
1. if Statement
Syntax:
if (condition) {
// code if true
}
Example:
int age = 18;
if (age >= 18) {
System.out.println("You can vote");
}
2. if-else Statement
Syntax:
if (condition) {
// code if true
} else {
// code if false
}
Example:
int marks = 45;
if (marks >= 50) {
System.out.println("Pass");
} else {
System.out.println("Fail");
}
3. if-else-if Ladder
Syntax:
if (condition1) {
// code
} else if (condition2) {
// code
} else if (condition3) {
// code
} else {
// default code
}
Example:
int marks = 75;
if (marks >= 90) {
System.out.println("Grade A");
} else if (marks >= 80) {
System.out.println("Grade B");
} else if (marks >= 70) {
System.out.println("Grade C");
} else if (marks >= 60) {
System.out.println("Grade D");
} else {
System.out.println("Grade F");
}
4. Nested if
Example:
int age = 20;
boolean hasLicense = true;
if (age >= 18) {
if (hasLicense) {
System.out.println("You can drive");
} else {
System.out.println("Get a license first");
}
} else {
System.out.println("You are too young");
}
5. switch Statement
Syntax:
switch (expression) {
case value1:
// code
break;
case value2:
// code
break;
default:
// code
}
Example:
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;
case 4:
System.out.println("Thursday");
break;
case 5:
System.out.println("Friday");
break;
case 6:
System.out.println("Saturday");
break;
case 7:
System.out.println("Sunday");
break;
default:
System.out.println("Invalid day");
}
Switch with String:
String fruit = "Apple";
switch (fruit) {
case "Apple":
System.out.println("Red fruit");
break;
case "Banana":
System.out.println("Yellow fruit");
break;
case "Orange":
System.out.println("Orange fruit");
break;
default:
System.out.println("Unknown fruit");
}
Important: Always use break to prevent fall-through.
6. for Loop
Syntax:
for (initialization; condition; update) {
// code
}
Example:
// Print 1 to 5
for (int i = 1; i <= 5; i++) {
System.out.println(i);
}
// Output: 1 2 3 4 5
// Print 10 to 1
for (int i = 10; i >= 1; i--) {
System.out.println(i);
}
Example: Sum of Numbers
int sum = 0;
for (int i = 1; i <= 10; i++) {
sum += i;
}
System.out.println("Sum = " + sum); // 55
7. Enhanced for Loop (for-each)
Syntax:
for (type variable : array) {
// code
}
Example:
int[] numbers = {10, 20, 30, 40, 50};
for (int num : numbers) {
System.out.println(num);
}
// Output: 10 20 30 40 50
String[] fruits = {"Apple", "Banana", "Orange"};
for (String fruit : fruits) {
System.out.println(fruit);
}
8. while Loop
Syntax:
while (condition) {
// code
}
Example:
int i = 1;
while (i <= 5) {
System.out.println(i);
i++;
}
// Output: 1 2 3 4 5
Example: Sum until 0
import java.util.Scanner;
Scanner sc = new Scanner(System.in);
int sum = 0;
int num = 1;
while (num != 0) {
System.out.print("Enter number (0 to stop): ");
num = sc.nextInt();
sum += num;
}
System.out.println("Total: " + sum);
9. do-while Loop
Syntax:
do {
// code (executes at least once)
} while (condition);
Example:
int i = 1;
do {
System.out.println(i);
i++;
} while (i <= 5);
// Output: 1 2 3 4 5
Difference from while:
// while - may not execute at all
int x = 10;
while (x < 5) {
System.out.println(x); // Never executes
}
// do-while - executes at least once
int y = 10;
do {
System.out.println(y); // Executes once: 10
} while (y < 5);
10. break Statement
Exits the loop immediately.
// Exit when i = 5
for (int i = 1; i <= 10; i++) {
if (i == 5) {
break;
}
System.out.println(i);
}
// Output: 1 2 3 4
// Search in array
int[] arr = {10, 20, 30, 40, 50};
int target = 30;
for (int num : arr) {
if (num == target) {
System.out.println("Found: " + num);
break;
}
}
11. continue Statement
Skips current iteration, continues with next.
// Skip even numbers
for (int i = 1; i <= 10; i++) {
if (i % 2 == 0) {
continue; // Skip rest of code
}
System.out.println(i);
}
// Output: 1 3 5 7 9
// Skip negative numbers
int[] numbers = {5, -2, 10, -7, 15};
for (int num : numbers) {
if (num < 0) {
continue;
}
System.out.println(num);
}
// Output: 5 10 15
Loop Comparison
| Loop | When to Use |
|---|---|
| for | Known number of iterations |
| while | Unknown iterations, check condition first |
| do-while | Unknown iterations, execute at least once |
| for-each | Iterate through arrays/collections |
Common Patterns
1. Print Multiplication Table:
int num = 5;
for (int i = 1; i <= 10; i++) {
System.out.println(num + " x " + i + " = " + (num * i));
}
2. Find Factorial:
int n = 5;
int factorial = 1;
for (int i = 1; i <= n; i++) {
factorial *= i;
}
System.out.println("Factorial = " + factorial); // 120
3. Check Prime Number:
int num = 17;
boolean isPrime = true;
for (int i = 2; i <= num / 2; i++) {
if (num % i == 0) {
isPrime = false;
break;
}
}
if (isPrime) {
System.out.println(num + " is prime");
} else {
System.out.println(num + " is not prime");
}
4. Reverse Number:
int num = 1234;
int reverse = 0;
while (num != 0) {
int digit = num % 10;
reverse = reverse * 10 + digit;
num /= 10;
}
System.out.println("Reversed: " + reverse); // 4321
Nested Loops
Pattern Printing:
// Print rectangle
for (int i = 1; i <= 4; i++) {
for (int j = 1; j <= 5; j++) {
System.out.print("* ");
}
System.out.println();
}
// Output:
// * * * * *
// * * * * *
// * * * * *
// * * * * *
// Print triangle
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= i; j++) {
System.out.print("* ");
}
System.out.println();
}
// Output:
// *
// * *
// * * *
// * * * *
// * * * * *
Exam Tips
Remember:
- if-else: Decision making
- switch: Multiple choices (int, String, char)
- for: Known iterations
- while: Check condition first
- do-while: Execute at least once
- break: Exit loop
- continue: Skip iteration
- for-each: Iterate arrays
- Always use break in switch
- do-while ends with semicolon
Common Questions:
- Difference between while and do-while?
- What is break and continue?
- How to use switch statement?
- When to use for vs while?
- What is for-each loop?
- How to write nested loops?