An if/else branch chooses one block and skips the other.

branch A branch lets the program choose different assignments from a condition.

If/Else Branches

score
if_else_branches.php
Replay: real traced execution (multi-file project)
<?php
$score = 72;
$passed = false;
$label = "";

if ($score >= 70) {
    $passed = true;
    $label = "pass";
} else {
    $passed = false;
    $label = "retry";
}

echo "score=" . $score . "\n";
echo "passed=" . ($passed ? "true" : "false") . "\n";
echo "label=" . $label . "\n";
<?php
$score = 55;
$passed = false;
$label = "";

if ($score >= 70) {
    $passed = true;
    $label = "pass";
} else {
    $passed = false;
    $label = "retry";
}

echo "score=" . $score . "\n";
echo "passed=" . ($passed ? "true" : "false") . "\n";
echo "label=" . $label . "\n";
<?php
$score = 90;
$passed = false;
$label = "";

if ($score >= 70) {
    $passed = true;
    $label = "pass";
} else {
    $passed = false;
    $label = "retry";
}

echo "score=" . $score . "\n";
echo "passed=" . ($passed ? "true" : "false") . "\n";
echo "label=" . $label . "\n";
  1. $score ← 72, $passed ← (empty), $label ← (empty)

    1<?php2$score→ 72 = 72; //@score=55, 903$passed→ (empty) = false;4$label→ (empty) = "";
  2. $passed ← 1, $label ← pass

    6if ($score72 >= 70) {7    $passed→ 1 = true;8    $label→ pass = "pass";9} else {
  3. echo "score=" . $score . " ";

    14echo "score=" . $score72 . "\n";15echo "passed=" . ($passed1 ? "true" : "false") . "\n";16echo "label=" . $labelpass . "\n";
    outputscore=72
    passed=true
    label=pass
  1. $score ← 55, $passed ← (empty), $label ← (empty)

    1<?php2$score→ 55 = 55;3$passed→ (empty) = false;4$label→ (empty) = "";56if ($score >= 70) {7    $passed = true;8    $label = "pass";9} else {10    $passed→ (empty) = false;11    $label→ retry = "retry";12}1314echo "score=" . $score55 . "\n";15echo "passed=" . ($passed(empty) ? "true" : "false") . "\n";16echo "label=" . $labelretry . "\n";
    outputscore=55
    passed=false
    label=retry
  1. $score ← 90, $passed ← (empty), $label ← (empty)

    1<?php2$score→ 90 = 90;3$passed→ (empty) = false;4$label→ (empty) = "";
  2. $passed ← 1, $label ← pass

    6if ($score90 >= 70) {7    $passed→ 1 = true;8    $label→ pass = "pass";9} else {
  3. echo "score=" . $score . " ";

    14echo "score=" . $score90 . "\n";15echo "passed=" . ($passed1 ? "true" : "false") . "\n";16echo "label=" . $labelpass . "\n";
    outputscore=90
    passed=true
    label=pass

Choose Pass or Retry

  1. $score starts at 72.
  2. The condition $score >= 70 is true.
  3. The if branch sets $passed to true.
  4. The label becomes pass. | Score | Branch | Printed label | | --- | --- | --- | | 72 | if | pass | | 55 | else | retry | | 90 | if | pass |

Exercise: if_else_branches.php

Use if/else to print pass for scores at least 70 and retry otherwise