Check several conditions in order.

chained-conditions An `else if` chain tests conditions from top to bottom and stops at the first matching branch.

Chained Conditions

points
chained_conditions.js
Replay: real traced execution (multi-file project)
const points = 85;
let grade = "";
if (points >= 90) {
  grade = "A";
} else if (points >= 70) {
  grade = "B";
} else {
  grade = "C";
}

console.log("points=" + points);
console.log("grade=" + grade);
const points = 45;
let grade = "";
if (points >= 90) {
  grade = "A";
} else if (points >= 70) {
  grade = "B";
} else {
  grade = "C";
}

console.log("points=" + points);
console.log("grade=" + grade);
const points = 98;
let grade = "";
if (points >= 90) {
  grade = "A";
} else if (points >= 70) {
  grade = "B";
} else {
  grade = "C";
}

console.log("points=" + points);
console.log("grade=" + grade);
  1. points ← 85, grade ← (empty)

    1const points→ 85 = 85; //@points=45, 982let grade→ (empty) = "";3if (points >= 90) {
  2. if (points >= 70)

    4  grade = "A";5} else if (points85 >= 70) {6  grade = "B";7} else {
  3. console.log("points=" + points);

    8  grade = "C";9}1011console.log("points=" + points85);12console.log("grade=" + gradeB);
    outputpoints=85
    grade=B
  1. points ← 45, grade ← (empty)

    1const points→ 45 = 45;2let grade→ (empty) = "";3if (points >= 90) {
  2. console.log("points=" + points);

    8  grade = "C";9}1011console.log("points=" + points45);12console.log("grade=" + gradeC);
    outputpoints=45
    grade=C
  1. points ← 98, grade ← (empty)

    1const points→ 98 = 98;2let grade→ (empty) = "";3if (points >= 90) {
  2. if (points >= 90)

    1const points = 98;2let grade = "";3if (points98 >= 90) {4  grade = "A";5} else if (points >= 70) {
  3. console.log("points=" + points);

    8  grade = "C";9}1011console.log("points=" + points98);12console.log("grade=" + gradeA);
    outputpoints=98
    grade=A