Skip to main content

Command Palette

Search for a command to run...

Control Flow in JavaScript: How Your Code Makes Decisions

Published
4 min read

Imagine you wake up in the morning. Your brain immediately starts running logic: If it's raining, I'll take an umbrella. Else, if it's sunny, I’ll wear sunglasses. Otherwise, I’ll just head out.

In programming, this "decision-making" process is called Control Flow. By default, JavaScript executes code line-by-line (top to bottom). Control flow structures allow us to break that linear path and execute specific blocks of code only when certain conditions are met.

1. The if Statement: The Simplest Decision

The if statement is the most basic way to control the flow of your program. It evaluates a condition; if that condition is true, the code inside the block runs.

JavaScript

let marks = 85;

if (marks > 33) {
  console.log("You passed!");
}

2. The if-else Statement: Two Paths

What if the condition is false? The else block provides an alternative path.

JavaScript

let age = 16;

if (age >= 18) {
  console.log("You can vote.");
} else {
  console.log("You are too young to vote.");
}

3. The else if Ladder: Multiple Options

When you have more than two distinct possibilities, you use the else if ladder. It checks conditions one by one until it finds a true one.

JavaScript

let time = 14; // 2:00 PM

if (time < 12) {
  console.log("Good Morning");
} else if (time < 17) {
  console.log("Good Afternoon");
} else {
  console.log("Good Evening");
}

4. The switch Statement: The Multi-Way Branch

When you are checking a single variable against many specific values, an if-else ladder can become messy. The switch statement is a cleaner, more readable alternative.

The Importance of break

In a switch block, the break keyword is vital. Without it, JavaScript will continue executing the code in the next cases even if they don't match—this is called fall-through.

JavaScript

let fruit = "Apple";

switch (fruit) {
  case "Banana":
    console.log("Yellow fruit");
    break;
  case "Apple":
    console.log("Red fruit"); // This runs
    break;
  default:
    console.log("Unknown fruit");
}

switch vs if-else: Which one to choose?

Feature

if-else

switch

Conditions

Best for ranges (e.g., marks > 90) or complex logic.

Best for fixed, discrete values (e.g., "Monday", "Tuesday").

Readability

Can get messy with many else if blocks.

Very clean and organized for many branches.

Performance

Slightly slower for a huge number of conditions.

Can be faster as the engine optimizes for value matching.


Assignment: Putting it into Practice

Task 1: Positive, Negative, or Zero?

For this task, I used an if-else if ladder because we are dealing with comparison operators ($>$, $<$), which are not supported by standard switch cases.

JavaScript

let num = 10;

if (num > 0) {
  console.log("The number is positive.");
} else if (num < 0) {
  console.log("The number is negative.");
} else {
  console.log("The number is zero.");
}

Task 2: Days of the Week

For this task, I used a switch statement because we are checking a single variable against seven fixed, predictable values (1 through 7). It makes the code much more readable.

JavaScript

let dayNumber = 3;

switch (dayNumber) {
  case 1: console.log("Monday"); break;
  case 2: console.log("Tuesday"); break;
  case 3: console.log("Wednesday"); break;
  case 4: console.log("Thursday"); break;
  case 5: console.log("Friday"); break;
  case 6: console.log("Saturday"); break;
  case 7: console.log("Sunday"); break;
  default: console.log("Invalid day number.");
}

Conclusion: Mastering control flow is like learning the grammar of a language. Once you know how to direct your code, you can build complex, intelligent applications that react to the world around them!

More from this blog

Prakash Jha Blogs

23 posts

Trying to write Blogs on day-to-day applications or technology from a different perspective, you never thought of how amazing those technologies are.