Skip to content

3.1. If Statements

If statements are fundamental to decision-making in Java. They allow the program to execute specific blocks of code based on whether a condition evaluates to true or false. This enables dynamic behavior and logical branching in your programs.

Syntax of If Statements

The basic syntax of an if statement is:

java
if (condition) {
    // Code to execute if condition is true
}

Example:

java
int number = 10;

if (number > 5) {
    System.out.println("The number is greater than 5.");
}

In this example, the message is printed because the condition number > 5 evaluates to true.

If-Else Statements

The if-else statement provides an alternative block of code to execute when the condition is false.

Syntax:

java
if (condition) {
    // Code to execute if condition is true
} else {
    // Code to execute if condition is false
}

Example:

java
int number = 3;

if (number % 2 == 0) {
    System.out.println("The number is even.");
} else {
    System.out.println("The number is odd.");
}

Else-If Ladder

The else-if ladder is used to test multiple conditions sequentially. The first condition that evaluates to true will execute its corresponding block of code.

Syntax:

java
if (condition1) {
    // Code to execute if condition1 is true
} else if (condition2) {
    // Code to execute if condition2 is true
} else {
    // Code to execute if none of the conditions are true
}

Example:

java
int score = 85;

if (score >= 90) {
    System.out.println("Grade: A");
} else if (score >= 80) {
    System.out.println("Grade: B");
} else if (score >= 70) {
    System.out.println("Grade: C");
} else {
    System.out.println("Grade: F");
}

Nested If Statements

You can nest if statements inside one another to handle more complex conditions.

Example:

java
int age = 20;
boolean hasLicense = true;

if (age >= 18) {
    if (hasLicense) {
        System.out.println("You can drive.");
    } else {
        System.out.println("You need a license to drive.");
    }
} else {
    System.out.println("You are too young to drive.");
}

Logical Operators in Conditions

Logical operators are often used in if statements to combine multiple conditions:

| Operator | Description | Example | | -------- | --------------------------- | ----------------- | ------------------------ | ------ | --- | ------- | | && | Logical AND (both true) | a > 5 && b < 10 | | | | | Logical OR (either true) | a > 5 | | b < 10 | | ! | Logical NOT (negates truth) | !(a > 5) |

Example:

java
int age = 25;
boolean hasID = true;

if (age >= 18 && hasID) {
    System.out.println("Access granted.");
} else {
    System.out.println("Access denied.");
}

Common Pitfalls and Best Practices

  1. Missing Braces: Always use braces {} for clarity, even for single-line blocks.

    java
    if (x > 0)
        System.out.println("Positive");  // Avoid this
  2. Overlapping Conditions: Ensure conditions in else-if ladders are mutually exclusive.

  3. Complex Conditions: Break down complex conditions into smaller, readable parts.

  4. Testing Edge Cases: Always test boundary values for conditions.

Example Code Snippet

java
public class IfStatementExamples {
    public static void main(String[] args) {
        int temperature = 30;

        if (temperature > 35) {
            System.out.println("It's very hot.");
        } else if (temperature > 25) {
            System.out.println("It's warm.");
        } else {
            System.out.println("It's cold.");
        }

        int number = 15;

        if (number % 3 == 0 && number % 5 == 0) {
            System.out.println("FizzBuzz");
        } else if (number % 3 == 0) {
            System.out.println("Fizz");
        } else if (number % 5 == 0) {
            System.out.println("Buzz");
        } else {
            System.out.println(number);
        }
    }
}