Control Flow Statements

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

LoopWhen to Use
forKnown number of iterations
whileUnknown iterations, check condition first
do-whileUnknown iterations, execute at least once
for-eachIterate 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:

  1. if-else: Decision making
  2. switch: Multiple choices (int, String, char)
  3. for: Known iterations
  4. while: Check condition first
  5. do-while: Execute at least once
  6. break: Exit loop
  7. continue: Skip iteration
  8. for-each: Iterate arrays
  9. Always use break in switch
  10. 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?