HelloUniversity Icon HelloUniversity

Nested If in Java: Writing Smarter Decisions

Published on: September 27, 2025 by Henson M. Sagorsor



Introduction to Office Suites

“Programs must be written for people to read, and only incidentally for machines to execute.” – Harold Abelson.


In Java programming, one of the most practical skills you’ll use daily is decision-making with conditions. It’s what allows your code to behave differently depending on the situation. That’s where the nested if in Java comes into play.


A nested if isn’t just another syntax trick. It’s a way to add layers of logic so your program can respond more intelligently. Think about it this way: you don’t simply check if someone can enter a building. You also check if they have an ID, and maybe even if their ID is valid for today. One decision leads to another. That’s exactly what nested if does in Java.


According to a Stack Overflow Developer Survey, more than 35% of common beginner errors come from misunderstanding Java conditional statements. Fixing that gap starts with understanding the flow of if statements and how nesting them makes your logic more precise.


In this lesson, we’ll break down the Java if statement, show you how nesting works step by step, and walk through examples that mirror real-world scenarios. By the end, you won’t just understand nested if — you’ll know how to use it effectively in your own projects.





What is a Nested If in Java?


A nested if in Java is an if statement placed inside another if or else block. It allows your program to check multiple conditions in sequence. The outer condition must be true before the inner condition is even considered. This structure is essential when your program needs to make decisions that depend on more than one factor.


Analogy: Imagine entering a library. The security guard first checks if you’re a student. If you are, they then check if you have a valid ID card. Only if both conditions are satisfied can you enter. That’s how a nested if in Java works — one check leads to another, step by step.


Syntax of Nested If

if (condition1) {
    if (condition2) {
        // code runs if both condition1 and condition2 are true
    } else {
        // code runs if condition1 is true but condition2 is false
    }
} else {
    // code runs if condition1 is false
}
    

Nested conditions let you write programs that are smarter and closer to how real-world decisions are made. Instead of flat yes-or-no choices, you can add depth. This makes Java conditional statements powerful tools for building logic that adapts to different scenarios.


Examples of Nested If in Java


Example 1: Positive and Even Check

Let’s start simple. Suppose you want to check if a number is positive. If it is, you also want to check whether it is even or odd. This requires a nested if statement.

int number = 12;

if (number > 0) {
    if (number % 2 == 0) {
        System.out.println("Positive and Even");
    } else {
        System.out.println("Positive but Odd");
    }
} else {
    System.out.println("Not Positive");
}
    

Analogy: Think of checking a document. First, is it signed? If yes, then check if the signature is valid.


Example 2: Grade Evaluation

Nested if is perfect for evaluations that have multiple levels of criteria. In this case, a grade must first meet the passing threshold. Then, if it’s high enough, it earns a higher remark.

int grade = 85;

if (grade >= 75) {
    if (grade >= 90) {
        System.out.println("Excellent");
    } else {
        System.out.println("Passed");
    }
} else {
    System.out.println("Failed");
}
    

Analogy: Passing the exam is the first step. Getting a medal requires an even higher score.


Example 3: ATM Simulation

Real-world scenarios often require more than one check. At an ATM, your transaction doesn’t just depend on entering the correct PIN. The system must also check your balance before approving the withdrawal.

int pin = 1234;
int inputPin = 1234;
int balance = 5000;
int withdraw = 2000;

if (inputPin == pin) {
    if (withdraw <= balance) {
        System.out.println("Transaction successful. Remaining balance: " + (balance - withdraw));
    } else {
        System.out.println("Insufficient balance.");
    }
} else {
    System.out.println("Invalid PIN.");
}
    

Analogy: Even if you have the right key to a locker, you still need to check if what you want to take fits inside.


Guided Activity: Traffic Light System (Nested If in Java)

You’ll build a small decision engine that reacts to two inputs: the traffic light color and pedestrian presence. This is a clean way to practise nested if in Java and solidify your understanding of Java conditional statements.

Goal

  • Read two inputs: light color (green, yellow, red) and pedestrian (yes, no).
  • Decide the action: Go, Wait, Prepare to stop, or Stop.

Why this matters

  • You’ll combine primary and secondary checks correctly.
  • You’ll structure input validation cleanly.
  • You’ll practice readable branching—key to production code.

Requirements

  • Use Scanner for input.
  • Normalize to lowercase with .toLowerCase().
  • Use nested if for the green light branch.
  • Handle invalid inputs gracefully.

Decision Rules

  • If green → check pedestrian:
    • If no → “Go”
    • If yes → “Wait”
  • If yellow → “Prepare to stop”
  • If red → “Stop”

Starter Code

import java.util.Scanner;

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

        System.out.print("Enter traffic light color (green/yellow/red): ");
        String light = sc.next().toLowerCase();

        System.out.print("Is there a pedestrian? (yes/no): ");
        String pedestrian = sc.next().toLowerCase();

        if (light.equals("green")) {
            // Nested if branch
            if (pedestrian.equals("no")) {
                System.out.println("Go");
            } else if (pedestrian.equals("yes")) {
                System.out.println("Wait");
            } else {
                System.out.println("Invalid pedestrian input");
            }
        } else if (light.equals("yellow")) {
            System.out.println("Prepare to stop");
        } else if (light.equals("red")) {
            System.out.println("Stop");
        } else {
            System.out.println("Invalid light color");
        }

        sc.close();
    }
}

Try These Test Cases

Input: Light Input: Pedestrian Expected Output
green no Go
green yes Wait
yellow no Prepare to stop
red yes Stop
blue no Invalid light color
green maybe Invalid pedestrian input

Checklist (Before You Submit)

  • Used nested if only in the green branch.
  • Handled invalid values for both inputs.
  • Printed a single, clear action message.
  • Code compiles and runs without errors.

Stretch Tasks

  • Add a blinking state: print “Proceed with caution”.
  • Accept full words like “Yes”/“No” and “Y”/“N”.
  • Log invalid attempts and re-prompt the user once.

Quick Reflection

Where did nesting add clarity? Where would a flat if-else chain be harder to read?

Write one sentence on how you’d refactor this later using switch or early returns.


Reference

This lesson on Nested If in Java is based on study materials provided in the course. For further reading and context, you may access the reference document here:

Nested If in Java – Reference Notes (Google Drive)

quiz Mandatory Assessment

All students must complete the assessment for this lesson. Your submission is required for course completion.

assignment_turned_in Take Assessment

warning Don’t miss this! Assessment link is required for all students.


Expand Your Knowledge

Dive deeper into technology and productivity with these related articles:







We'd Like to Hear Your Feedback

Comments

No comments yet. Be the first to share your thoughts!