An else if chain checks several conditions in order.

else-if chain An else-if chain keeps checking conditions until one branch matches.

Else-If Chains

score
ElseIfChain.cs
Replay: real traced execution (multi-file project)
using System;

class Program
{
    static void Main()
    {
        int score = 82;
        string grade;

        if (score >= 90)
        {
            grade = "A";
        }
        else if (score >= 70)
        {
            grade = "pass";
        }
        else
        {
            grade = "retry";
        }

        Console.WriteLine($"score={score}");
        Console.WriteLine($"grade={grade}");
    }
}
using System;

class Program
{
    static void Main()
    {
        int score = 59;
        string grade;

        if (score >= 90)
        {
            grade = "A";
        }
        else if (score >= 70)
        {
            grade = "pass";
        }
        else
        {
            grade = "retry";
        }

        Console.WriteLine($"score={score}");
        Console.WriteLine($"grade={grade}");
    }
}
using System;

class Program
{
    static void Main()
    {
        int score = 95;
        string grade;

        if (score >= 90)
        {
            grade = "A";
        }
        else if (score >= 70)
        {
            grade = "pass";
        }
        else
        {
            grade = "retry";
        }

        Console.WriteLine($"score={score}");
        Console.WriteLine($"grade={grade}");
    }
}
  1. score ← 82

    4{5    static void Main()6    {7        int score→ 82 = 82; //@score=59, 958        string grade;
  2. grade ← pass

    13}14else if (score82 >= 70)15{16    grade→ pass = "pass";17}
  3. Console.WriteLine($"score={score}");

    23    Console.WriteLine($"score={score82}");24    Console.WriteLine($"grade={gradepass}");25}
    outputscore=82
    grade=pass
  1. score ← 59

    4{5    static void Main()6    {7        int score→ 59 = 59;8        string grade;
  2. grade ← retry

    17}18else19{20    grade→ retry = "retry";21}
  3. Console.WriteLine($"score={score}");

    23    Console.WriteLine($"score={score59}");24    Console.WriteLine($"grade={graderetry}");25}
    outputscore=59
    grade=retry
  1. score ← 95

    4{5    static void Main()6    {7        int score→ 95 = 95;8        string grade;
  2. grade ← A

    10if (score95 >= 90)11{12    grade→ A = "A";13}
  3. Console.WriteLine($"score={score}");

    23    Console.WriteLine($"score={score95}");24    Console.WriteLine($"grade={gradeA}");25}
    outputscore=95
    grade=A

Choose the Grade

  1. score starts at 82.
  2. The first check, score >= 90, is false.
  3. The else if check, score >= 70, is true.
  4. grade becomes pass. | Score | First matching branch | Grade | | --- | --- | --- | | 95 | if | A | | 82 | else if | pass | | 59 | else | retry |

Exercise: ElseIfChain.cs

Use if, else if, and else to map a score to A, pass, or retry