# Control Flow in Programming (JavaScript)

## 1\. Introduction: What is Control Flow in Programming?

Imagine a normal day in your life.

You wake up and think:

*   If it is **morning**, I will **brush my teeth**
    
*   If it is **Sunday**, I will **rest**
    
*   If it is **Monday**, I will **go to work**
    

Your brain is constantly making **decisions**.

Programming works the same way.

A computer program also needs to decide:

*   Should this code run?
    
*   Or should another code run?
    
*   Or should it skip something?
    

This process is called **Control Flow**.

### Definition

**Control Flow determines the order in which instructions are executed in a program.**

Without control flow, a program would execute every line from top to bottom with no decision-making.

## ❊Example Without Control Flow

```javascript
console.log("Wake up");
console.log("Go to gym");
console.log("Go to office");
console.log("Sleep");
```

The program will run every line.

But what if today is **Sunday**?

You might not want to go to the office.

This is where **control flow statements** come into play.

## ❊ Types of Control Flow Statements

The most common ones are:

1.  **if statement**
    
2.  **if-else statement**
    
3.  **else-if ladder**
    
4.  **switch statement**
    

These help programs **make decisions**.

## 2\. The if Statement

The **if statement** executes code **only if a condition is true**.

### Syntax

```javascript
if (condition) {
    // code runs if condition is true
}
```

## ❊ Real Life Example

Imagine a school rule:

> If a student’s marks are greater than 40, they pass.

```javascript
let marks = 50;

if (marks > 40) {
  console.log("You passed the exam");
}
```

### Step-by-Step Execution

1.  Program reads the value of `marks`
    
2.  It checks the condition `marks > 40`
    
3.  If the condition is **true**, the code inside `{}` runs
    
4.  If the condition is **false**, the program skips it
    

### Example Output

```javascript
You passed the exam
```

### When the condition is false

```javascript
let marks = 30;

if (marks > 40) {
  console.log("You passed");
}
```

*Output:*

```javascript
(no output)
```

Because the condition is **false**.

## 3\. The if-else Statement

Sometimes we want the program to do **something else** if the condition is false.

That is where **if-else** is used.

### Syntax

```javascript
if (condition) {
   // runs if condition is true
} else {
   // runs if condition is false
}
```

## ❊ Real Life Example

At a movie theatre:

*   If **age ≥ 18** → Allowed
    
*   Else → Not allowed
    

### Example

```javascript
let age = 16;

if (age >= 18) {
  console.log("You can watch the movie");
} else {
  console.log("You are not allowed");
}
```

### ❊ Step-by-Step Execution

1.  Program checks `age >= 18`
    
2.  If true → first block runs
    
3.  If false → `else` block runs
    

### Output

```javascript
You are not allowed
```

## 4\. The Else If Ladder

Sometimes there are **multiple conditions**.

Example: grading system

| Marks | Grade |
| --- | --- |
| 90+ | A |
| 75+ | B |
| 50+ | C |
| <50 | Fail |

This is where **else-if ladder** is useful.

### Syntax

```javascript
if (condition1) {

} else if (condition2) {

} else if (condition3) {

} else {

}
```

### Example

```javascript
let marks = 82;

if (marks >= 90) {
  console.log("Grade A");
} 
else if (marks >= 75) {
  console.log("Grade B");
}
else if (marks >= 50) {
  console.log("Grade C");
}
else {
  console.log("Fail");
}
```

### ⤑ Step-by-Step Execution

Marks = **82**

1.  Check `marks >= 90` → false
    
2.  Check `marks >= 75` → true
    
3.  Program prints **Grade B**
    
4.  Remaining conditions are skipped
    

### *Output*

```plaintext
Grade B
```

## 5\. The Switch Statement

The **switch statement** is used when there are **many possible fixed values**.

It is commonly used for:

*   menus
    
*   days of week
    
*   months
    
*   options
    

### ⤑ Syntax

```javascript
switch(expression) {

  case value1:
    code
    break;

  case value2:
    code
    break;

  default:
    code
}
```

### ⤑ *Example: Day of Week*

```javascript
let day = 3;

switch(day) {

  case 1:
    console.log("Monday");
    break;

  case 2:
    console.log("Tuesday");
    break;

  case 3:
    console.log("Wednesday");
    break;

  default:
    console.log("Invalid day");
}
```

### ⤑ Step-by-Step Execution

1.  `day = 3`
    
2.  Switch checks cases
    
3.  `case 3` matches
    
4.  Prints **Wednesday**
    

## ❊ Understanding break in Switch

`break` stops execution.

Without break, the program continues executing the next cases.

### ⤑ Example Without break

```javascript
let day = 2;

switch(day) {

  case 1:
    console.log("Monday");

  case 2:
    console.log("Tuesday");

  case 3:
    console.log("Wednesday");
}
```

### *Output*

```plaintext
Tuesday
Wednesday
```

This happens because **there is no break**.

## 6\. When to Use Switch vs If-Else

### ⤑ Use if-else when:

*   conditions are **ranges**
    

Example:

```javascript
marks > 90
age >= 18
temperature > 30
```

### ⤑ Use switch when:

*   checking **specific values**
    

Example:

```javascript
day = Monday
role = admin
menu option = 1
```

### ⤑ Example

Good for **if-else**

```javascript
if (marks > 90)
```

Good for **switch**

```javascript
switch(day)
```

## ❊ Comparison Table

| Feature | if-else | switch |
| --- | --- | --- |
| Range conditions | Yes | No |
| Exact values | Yes | Yes |
| Readability with many cases | Hard | Easier |
| Common use | logic | menus/options |

## ❊ Conclusion

Control flow is one of the **most fundamental concepts in programming**.

It allows programs to:

*   make decisions
    
*   run different code paths
    
*   handle real-world logic
    

The most important control flow statements are:

*   **if**
    
*   **if-else**
    
*   **else-if ladder**
    
*   **switch**
    

Understanding when to use each of them will make your programs **cleaner and easier to understand**.

* * *

### ❊ **Want More…?**

I write articles on [**blog.prakashtsx.com**](http://blog.prakashtsx.com) and also post development-related content on the following platforms:

*   [**Twitter/X**](https://x.com/prakashtsx)
    
*   [**LinkedIn**](https://www.linkedin.com/in/prakashtsx)
