# Control Flow

## Conditional Statements

Conditional statements execute different blocks of code depending on specified conditions.

### if Statement

The `if` statement runs a block of code if a condition evaluates to `true`.

```javascript
let age = 18;

if (age >= 18) {
    console.log("You are an adult.");
}
```

### if...else Statement

The `else` block runs if the condition in `if` is `false`.

```javascript
let age = 16;

if (age >= 18) {
    console.log("You are an adult.");
} else {
    console.log("You are a minor.");
}
```

### if...else if...else Statement

Used when multiple conditions need to be checked.

```javascript
let score = 85;

if (score >= 90) {
    console.log("Grade: A");
} else if (score >= 80) {
    console.log("Grade: B");
} else {
    console.log("Grade: C or lower");
}
```

### Ternary Operator (Shorter if...else)

A shorthand way to write an `if...else` statement.

```javascript
let isMember = true;
let discount = isMember ? "10% off" : "No discount";
console.log(discount);
```

## Switch Statement

The `switch` statement is used when checking multiple possible values of a variable.

```javascript
let day = "Monday";

switch (day) {
    case "Monday":
        console.log("Start of the week.");
        break;
    case "Friday":
        console.log("Weekend is near.");
        break;
    case "Sunday":
        console.log("Relax, it's the weekend.");
        break;
    default:
        console.log("A regular day.");
}
```

- `break` prevents fall-through execution to the next case.
- `default` runs if no case matches.

## Loops in JavaScript

Loops allow repetitive execution of code until a condition is met.

### for Loop

Used when the number of iterations is known.

```javascript
for (let i = 1; i <= 5; i++) {
    console.log("Iteration:", i);
}
```

### while Loop

Executes as long as the condition remains `true`.

```javascript
let count = 1;

while (count <= 5) {
    console.log("Count:", count);
    count++;
}
```

### do...while Loop

Similar to `while`, but always executes at least once.

```javascript
let num = 1;

do {
    console.log("Number:", num);
    num++;
} while (num <= 3);
```

## Loop Control Statements

### break Statement

Exits a loop immediately.

```javascript
for (let i = 1; i <= 10; i++) {
    if (i === 5) {
        break;
    }
    console.log(i);
}
```

**Output:** `1 2 3 4` (stops at 5).

### continue Statement

Skips the current iteration and continues with the next.

```javascript
for (let i = 1; i <= 5; i++) {
    if (i === 3) {
        continue;
    }
    console.log(i);
}
```

**Output:** `1 2 4 5` (skips 3).

## Conclusion

This section covered conditional statements and loops, which control program flow. The next section will focus on **functions**, an essential part of writing reusable and structured JavaScript code.
