Nekoto個人工作室 PHP教學,WordPress,技術 一天半小時-PHP快速上手基礎教學篇 Day2

一天半小時-PHP快速上手基礎教學篇 Day2

for迴圈

試想我們如果要做的每件事都得逐行指令告訴電腦,那就無法有效的減少我們的工作量,所以這時候我們就需要可以循環執行我們敘述的指令,我們只需告訴其規則讓其執行出結果即可。

假設我們是沒有for迴圈的狀態,我們想得到1加2加3依序不斷加到10的結果,可以怎麼寫呢?

看起來是不是有點工人智慧的感覺,但要記住,程式的本質是解決問題,即使是最笨的方法也是一種解法。

那麼使用for迴圈可以怎麼解呢?

雖然乍看之下我們的程式碼(相當於我們所要做的工作量),兩種寫法不會差太多時間,但今天如果是1加到100,加到1000,程式碼的數量跟可閱讀性就會有顯著的差異。

解釋一下上面代碼的部分,變數i我們想像為一個計數器 $i=1; 代表我們的計數器從1開始(也可以是其他數),$i<=10;代表我們要計數器到10我們才停止,要注意這邊如果改成<的話只會執行9次,外面比較多教的初始寫法$i都是從0開始,是因為程式的計算是從0開始數的,但是他只是一個計數器,且我們的題目是從1開始加,所以要懂得靈活變通,若只是需要計數器跑十次也可這樣寫。

一切依照你計算不會亂掉的寫法為準。$i++則代表我們每次每進行一次for迴圈內的循環後,我們的$i變數都會自己+1,若是覺得困惑的同學可以把每個循環內的$i值echo(打印)出來會更好理解。

同學看教學有疑惑的同時建議可以打開 PHP線上測試網站 貼上範例程式碼做練習

while迴圈

while跟for迴圈其實目的是相同的,都是為了簡化需要重複執行的動作,不同的是for迴圈會設定計數器起始跟結束條件,而while則是在指定條件達成前會一直循環執行下去。若一樣用while來從1加到10,我們可以這樣寫。

初學者在看while能使用的實際例子比較少,我們後面會再提到,一些比較常用的案子是例如:讀入文件時如果下一行仍然有資料則繼續讀入,若檔案還沒傳輸完則繼續傳輸這類的用法。

這邊提一下,為什麼很多人會說數學好程式也不會差呢?比較有sense的朋友應該有想到1加到10實際上用數學公式可以轉化成(1+10)*10/2,這樣即使不會用for跟while迴圈也可以輕易用一行指令算出結果,這是對的,但程式的目的就是”我只要知道我要做的步驟”,即使是用笨的方法也可以得到結果。

課後自我練習

1.如何把1~100的偶數用for迴圈相加

2.把第一題用while迴圈改寫

Related Post