今天的部分有while迴圈和巢狀迴圈!
while迴圈
while迴圈會在給定的條件為True的時候重複執行程式碼
用法是↓
while 條件:
# 執行的代碼
我用一個實際的例子來說明!
我先假設變數num是1
再來跑一個當num<10的時候,會跑以下程式碼的while迴圈!
現在num=1,所以會條件為True,會開始跑程式碼
先print現在num的值,然後再把num+1!
就會這樣一直跑,跑到9!
程式碼中有一個num+=1,就是num=num+1的意思!
其他的用法也是一樣!例如↓
num-=1 → num=num-1
num*=2 → num=num*2
num/=10 → num=num/10
以此類推!
在while迴圈中還有break和continue!
break:提前終止迴圈
continue:跳過當前迴圈的剩餘部分,馬上進入下一次的迴圈
先來一個break的範例!
我把if那部分的程式碼註解起來先不跑
我用while True來製造一個"無限迴圈"
數字會一直+1,跑不停!
所以遇到這種狀況的時候就需要break了!
我再把註解拿掉,多跑兩行程式碼
如果count>5的時候就要break
這樣輸出就只會有1~5而已!
再來是continue的例子
這是一個只輸出0~20中的"偶數"的程式碼
num從0開始,直到num>20才會停止while迴圈!
每進入一次迴圈num就會+1,但下面多了一個判斷
"當num/2的餘數等於1的時候",也就代表它是奇數
當這個條件為True的時候就執行"continue"
跳過迴圈中剩下還沒跑的程式碼,直接進入下一次的迴圈
所以就不會把num輸出出來
這樣子寫的話,就可以只把偶數輸出出來了!
巢狀迴圈
巢狀迴圈就是迴圈裡面還有迴圈!
給大家看一個範例
先假設rows=3
下面的for迴圈指定i從1開始跑,結束值是rows+1,這是代表"行數"!
裡面還有一個迴圈,i的值會等於j的值,j在這邊是代表這行裡面有幾個*
而end=' '的意思是print之後不要換行,結尾是' ' 空格!
等那一行的"*"都輸出完後再用print()來空行!
我一開始學巢狀迴圈的時候會有點搞混每個迴圈的用意@@
真的要仔細思考跟多練習才比較熟練!
for迴圈和while迴圈的差異
for迴圈適合用在知道次數的時候~用來跑有固定範圍或序列中的每一個元素
while迴圈適合用在條件滿足的時候並反覆的執行,直到條件不符合
明天會介紹迴圈的應用~