Control Flow Details
If/Else Branches
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
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";
$score ← 72, $passed ← (empty), $label ← (empty)
1<?php2$score→ 72 = 72; //@score=55, 903$passed→ (empty) = false;4$label→ (empty) = "";$passed ← 1, $label ← pass
6if ($score72 >= 70) {7 $passed→ 1 = true;8 $label→ pass = "pass";9} else {echo "score=" . $score . " ";
14echo "score=" . $score72 . "\n";15echo "passed=" . ($passed1 ? "true" : "false") . "\n";16echo "label=" . $labelpass . "\n";outputscore=72 passed=true label=pass
$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
$score ← 90, $passed ← (empty), $label ← (empty)
1<?php2$score→ 90 = 90;3$passed→ (empty) = false;4$label→ (empty) = "";$passed ← 1, $label ← pass
6if ($score90 >= 70) {7 $passed→ 1 = true;8 $label→ pass = "pass";9} else {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
$scorestarts at72.- The condition
$score >= 70is true. - The
ifbranch sets$passedto true. - 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