n = int(input("請輸入次數:"))
i = 1 # 計圈用變數
sum = 0 # 創造一個變數用來儲存每一輪迴圈計算出的值
while i <= n: # 圈數還沒達到n時繼續
sum += i # 將每輪計算出的結果儲存在sum變數中
i += 1 # 改變計圈用變數的值
print(sum)
i = int(input('請輸入一個正整數:'))
while i % 2 == 0: # 如果 i 為偶數,就進入迴圈
i /= 2 # 每一輪將i值除以2
print(i) # 印出最終已成為奇數的 i 值
【例題2】
嘗試輸入各種血型來觀看今年的運勢(輸入00可結束此程式)
i = '' # 先將i初始為一個非00的值(為了能進入迴圈)
while i != '00': # 當輸入值為00時結束迴圈
i = input('請輸入一個血型:')
if i == 'A' or i == 'a':
print('今年桃花運很旺')
elif i == 'B' or i == 'b':
print('今年金錢運很旺')
elif i == 'AB' or i == 'ab':
print('今年工作運很旺')
elif i == 'O' or i == 'o':
print('今年驚喜運很旺')
print('程式已結束') # 印出 程式已結束 字樣
偶爾,我們會期待迴圈能永遠執行下去,永不停止
【例題3】
請撰寫一個能讓使用者輸入成績進而判斷:及格、可補考、死當
# 結合了迴圈,就能夠實現重複不斷輸入的效果
while 1:
num = int(input("請輸入一個分數:"))
if num >= 60:
print("及格")
elif 40 <= num <60:
print("可補考")
else:
print("死當")
【例題4】
請撰寫一個能夠不斷印出小印地安人的程式
# 結合了迴圈,就能夠實現重複不斷輸入的效果
i = 1 # 計圈變數一開始設為1
while True:
print(i, 'little Indian')
i += 1 # 每輪結束前將計圈變數做變化
C. 讓迴圈中途停止或跳過迴圈中的某圈
break
從上方【例題2】中我們可以發現,需要讓迴圈在i值為 '00' 時結束,須於 while 外頭先宣告 i 變數,讓程式碼看起來似乎有那麼一點不完美,這時,若我們能使用break即能夠避免這樣的情形
break:當電腦執行到break時會立即終止該層迴圈
【例題】
上方【例題2】的改寫
# 嘗試執行下方的程式碼並觀察結果
while True:
i = input('請輸入一個血型:')
if i == '00':
break # 當輸入值為00時結束迴圈
elif i == 'A' or i == 'a':
print('今年桃花運很旺')
elif i == 'B' or i == 'b':
print('今年金錢運很旺')
elif i == 'AB' or i == 'ab':
print('今年工作運很旺')
elif i == 'O' or i == 'o':
print('今年驚喜運很旺')
print('程式已結束') # 印出 程式已結束 字樣
row, col = map(int, input("請輸入列與行:").split())
# 跑row圈(印出row個橫列)
for i in range(0, row):
# 跑col圈(在第i圈印出col個A)
for j in range(0, col):
print("A", end="")
print()
用while改寫
row, col = map(int, input("請輸入列與行:").split())
# 跑row圈(印出row個橫列)
i = 0
while i < row:
# 跑col圈(在第i圈印出col個A)
j = 0 # 思考看看,如果此行與上一行程式碼位置互換結果會如何?
while j < col:
print('A', end='')
j += 1
print()
i += 1 # 想想看,這行程式碼位什麼要往前移動
n = int(input("請輸入一個正整數:"))
# 跑n圈(印出n個橫列)
for i in range(0, n):
# 每一輪j值的上限隨i變化而變化(即:在第i圈印出i個*)
for j in range(0, i+1):
print("*", end="")
print()
思考看看,第二個for迴圈為何上限寫i+1而非i
你也可以這樣改寫
n = int(input("請輸入一個正整數:"))
# 跑n圈(印出n個橫列)
for i in range(1, n+1):
# 每一輪j值的上限隨i變化而變化(即:在第i圈印出i個*)
for j in range(0, i):
print("*", end="")
print()
用while改寫
n = int(input("請輸入一個正整數:"))
# 跑n圈(印出n個橫列)
i = 1
while i < n+1:
# 每一輪j值的上限隨i變化而變化(即:在第i圈印出i個*)
j = 0
while j < i:
print('*', end='')
j += 1
print()
i += 1
C. 巢狀迴圈中的 continue 與 break
break與continue都僅作用於本身所存在的該層迴圈而已
for i in range(5):
for j in range(5):
if j == 3:
continue
elif j == 4:
break
print(j, end=' ')
print()