iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 28
1
Modern Web

~網頁入門~系列 第 28

Day28 – PHP – 流程控制

if條件控制

https://ithelp.ithome.com.tw/upload/images/20191014/201209594bBkoeFRwV.jpg

<?php
    $boolean = true; 
 
    if ($boolean == true) {
        echo "成立!";
    }
?>

上方範例中,當條件成立就會印出 “成立!” 的字串;
反之,區域內程式不會執行。

if … else …

通常我們在用 if 條件判斷時,會搭配 else 來使用。
https://ithelp.ithome.com.tw/upload/images/20191014/20120959X8nlad66jH.jpg

<?php
    $n = 5; 
    if ($n > 0) {
        echo $n."是正數";
    } else {
        echo $n."不是正數";
    }
?>

https://ithelp.ithome.com.tw/upload/images/20191014/20120959MPreTje4c1.jpg

<?php
    $n = -2; 
    if ($n > 0) {
        echo $n."是正數";
    } else {
        echo $n."不是正數";
    }
?>

https://ithelp.ithome.com.tw/upload/images/20191014/20120959uPIjQLfqaw.jpg

三元運算子

三元運算子是精簡版的 if else 判斷式

布林判斷式 ? true的值 : false的值;

<?php
    $n = 5;
    // $n > 0 是 true 的話  則 $judgment = "正數"
    // $n > 0 是 false 的話  則 $judgment = "非正數"
    $judgment = $n > 0 ? "正數" : "非正數";
    echo $n."是".$judgment;
?>

https://ithelp.ithome.com.tw/upload/images/20191014/20120959oHRQP1jUS7.jpg

<?php
    $n = 0;
    // $n > 0 是 true 的話  則 $judgment = "正數"
    // $n > 0 是 false 的話  則 $judgment = "非正數"
    $judgment = $n > 0 ? "正數" : "非正數";
    echo $n."是".$judgment;
?>

https://ithelp.ithome.com.tw/upload/images/20191014/20120959IPRyUuilZT.jpg

if … else if … else …

上面的範例都只有真或假、對或錯這種 true 或 false 的判斷,但我們常常會遇到需要不只一個條件判斷的程式碼,這時候,else if 就派上用場啦~
https://ithelp.ithome.com.tw/upload/images/20191014/20120959v4OIb4CTOG.jpg

<?php
    $score = 77;
    $grade;
    if($score >= 90){
        $grade = "90分~100分";
    }elseif($score >= 80){
        $grade = "80分~89分";
    }elseif($score >= 70){
        $grade = "70分~79分";
    }elseif($score >= 60){
        $grade = "60分~69分";
    }else{
        $grade = "不及格!";
    }
    echo "我考 ".$score."分 區間是 ".$grade; 
?>

https://ithelp.ithome.com.tw/upload/images/20191014/20120959u5lDIWjG2D.jpg


for / while條件控制

for迴圈

https://ithelp.ithome.com.tw/upload/images/20191014/20120959qnY1loq4pt.jpg

<?php
    for($i = 1; $i <= 10; $i++){
        echo "ya!~<br>";
    }    
?>

https://ithelp.ithome.com.tw/upload/images/20191014/20120959dGfvCWhBFD.jpg

<?php
    // 3 + 5 + 7 + ... + 55
    $total = 0;
    for($i = 3; $i <= 55; $i += 2){
        $total = $total + $i;
    }
    echo "總合為 ".$total;
?>

https://ithelp.ithome.com.tw/upload/images/20191014/20120959OtEhZTm5zc.jpg

while迴圈

https://ithelp.ithome.com.tw/upload/images/20191014/201209595cDvV2ZwUY.jpg
當條件成立的時候,就重複執行裡面的程式碼,直到條件不成立為止。
如果條件永遠不會不成立,就形成無窮迴圈,電腦會跑到掛掉/images/emoticon/emoticon06.gif

<?php
    // 1 + 2 + ... + 10
    $sum = 0;
    $i = 1;
    while($i <= 10){
        $sum += $i;
        $i++;
    }
    echo $sum;
    echo "<br>".$i;
?>

https://ithelp.ithome.com.tw/upload/images/20191014/201209596ctu4ldoub.jpg

中斷指令

  • break - 結束整個迴圈
  • continue - 跳過本次迴圈的執行
<?php
    // 印出 01245679 跳過3,8
    $text = "";
    for($i = 0; $i < 10 ; $i++){
        if($i == 3 || $i == 8){
            continue;
        }else{
            $text .= $i; // $text = $text.$i;
        }
    }
    echo $text."<br>";
?>

https://ithelp.ithome.com.tw/upload/images/20191014/20120959kCVWrGtKF5.jpg

<?php
    // 印出5個 < 50 的 3的倍數
    $n = 0;
    for($i = 1 ; $i <= 50 ; $i++){
        if($i % 3 == 0) {
            $n += 1;
            if($n <= 5){
                echo "第".$n."個3的倍數是 ".$i."<br>";
            }else{
                break;
            }
        }else {
            continue;
        }
    }
?>

https://ithelp.ithome.com.tw/upload/images/20191014/201209596NFxCJtbpA.jpg

這些流程控制程式碼都可以互相搭配著使用喔~


上一篇
Day27 – PHP – HTTP Method (Get & Post)
下一篇
Day29 – PHP – 陣列與迴圈的應用
系列文
~網頁入門~30

尚未有邦友留言

立即登入留言