Java: Make Decisions with If, Else If, and Else

Java Tutorial: Decision Making with If, Else If, and Else

Java Tutorial: Decision Making with If, Else If, and Else

This tutorial will guide you through the basics of making decisions in Java using `if`, `else if`, and `else` statements. These statements allow your program to execute different blocks of code based on certain conditions. It’s fundamental to almost every non-trivial Java application.

Understanding the Basics

The core concept is conditional execution. You check a condition (a boolean expression that evaluates to either `true` or `false`). If the condition is `true`, the code block associated with that `if` statement is executed. If the condition is `false`, the program continues to the next block, potentially an `else if` or `else` block.

Here’s a general syntax:

  • if (condition) {
    // Code to execute if condition is true
    }
  • else if (condition2) {
    // Code to execute if condition2 is true
    }
  • else {
    // Code to execute if none of the above conditions are true
    }

The `else` block is optional. It’s used to handle cases where none of the preceding conditions are met.

Example 1: Simple Number Checker

Let’s create a program that checks if a number is positive, negative, or zero.


// Import statement (not strictly required, but good practice)
//import java.util.Scanner;

public class NumberChecker {

public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);

System.out.print("Enter an integer: ");
int number = scanner.nextInt();

if (number > 0) {
System.out.println("The number is positive.");
} else if (number < 0) {
System.out.println("The number is negative.");
} else {
System.out.println("The number is zero.");
}

scanner.close();
}
}


// Import statement (not strictly required, but good practice)
//import java.util.Scanner;

public class NumberChecker {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.print("Enter an integer: ");
        int number = scanner.nextInt();

        if (number > 0) {
            System.out.println("The number is positive.");
        } else if (number < 0) {
            System.out.println("The number is negative.");
        } else {
            System.out.println("The number is zero.");
        }

        scanner.close();
    }
}

Explanation:

  1. We create a class named `NumberChecker` and a `main` method.
  2. We use a `Scanner` object to get input from the user.
  3. We prompt the user to enter an integer and store it in the `number` variable.
  4. We use an `if` statement to check if `number` is greater than 0. If it is, we print “The number is positive.”.
  5. If the first condition is false, we use an `else if` statement to check if `number` is less than 0. If it is, we print “The number is negative.”.
  6. If both the `if` and `else if` conditions are false, it means `number` must be 0, so we print “The number is zero.”.
  7. Finally, we close the `Scanner` to release resources.

Common Mistakes:

  • Forgetting to close the `Scanner`: This can lead to resource leaks.
  • Incorrectly comparing values: Make sure you are using the correct comparison operator (`>`, `<`, `==`, etc.).

Output:


Enter an integer: 5
The number is positive.

Enter an integer: -2
The number is negative.

Enter an integer: 0
The number is zero.

Example 2: Grade Calculator

Let’s create a program that calculates a letter grade based on a numerical score. This demonstrates a more complex scenario with multiple conditions.


public class GradeCalculator {

public static void main(String[] args) {
double score;

System.out.print("Enter your score (0-100): ");
score = 100.0 - Double.parseDouble(System.getProperty("line.separator")); // Get input from the user

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 if (score >= 60) {
System.out.println("Grade: D");
} else {
System.out.println("Grade: F");
}
}
}


public class GradeCalculator {

    public static void main(String[] args) {
        double score;

        System.out.print("Enter your score (0-100): ");
        score = 100.0 - Double.parseDouble(System.getProperty("line.separator")); // Get input from the user

        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 if (score >= 60) {
            System.out.println("Grade: D");
        } else {
            System.out.println("Grade: F");
        }
    }
}

Explanation:

  1. We define a `GradeCalculator` class with a `main` method.
  2. We declare a `double` variable `score` to store the user’s score.
  3. We prompt the user to enter a score between 0 and 100.
  4. We use a series of `if` and `else if` statements to determine the letter grade based on the score:
    • If `score` is 90 or above, the grade is “A”.
    • If `score` is 80 or above, the grade is “B”.
    • If `score` is 70 or above, the grade is “C”.
    • If `score` is 60 or above, the grade is “D”.
    • Otherwise, the grade is “F”.

Output:


Enter your score (0-100): 85
Grade: B

Enter your score (0-100): 62
Grade: D

Enter your score (0-100): 95
Grade: A

Example 3: Even or Odd

This example determines if a number is even or odd. Even numbers are divisible by 2 with no remainder. Odd numbers are not.


public class EvenOrOdd {

public static void main(String[] args) {
int number;

System.out.print("Enter an integer: ");
number = Integer.parseInt(System.getProperty("line.separator"));

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


public class EvenOrOdd {

    public static void main(String[] args) {
        int number;

        System.out.print("Enter an integer: ");
        number = Integer.parseInt(System.getProperty("line.separator"));

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

Explanation:

  1. We create a class named `EvenOrOdd` and a `main` method.
  2. We declare an integer variable `number`.
  3. We prompt the user to enter an integer.
  4. We use the modulo operator (`%`) to find the remainder when `number` is divided by 2.
  5. If the remainder is 0, the number is even, and we print a message indicating this.
  6. Otherwise, the number is odd, and we print a message indicating this.

Output:


Enter an integer: 4
4 is even.

Enter an integer: 7
7 is odd.

Leave a Reply

Your email address will not be published. Required fields are marked *

We use cookies and similar technologies to enhance your experience on wobizdu.com, analyze site traffic, personalize content, and deliver relevant ads. Some cookies are essential for the site to function, while others help us improve performance and user experience. You may accept all cookies, decline optional ones, or customize your settings. Review our Privacy Policy to learn more.