pass
、continue
以及break
常用於控制迴圈的執行,它們的功能如下:
pass
的例子
for i in range(2):
for j in range(3):
if j == 2:
pass
print("still run")
else:
print('j =',j,',','i =',i)
print('*'*10)
輸出為:
j = 0 , i = 0
**********
j = 1 , i = 0
**********
still run
**********
j = 0 , i = 1
**********
j = 1 , i = 1
**********
still run
**********
可以看出,pass
之後的同級語句仍可以執行。
continue
的例子
for i in range(2):
for j in range(4):
if j == 2:
continue
print("cannot run")
else:
print('j =',j,',','i =',i)
print(j,'*'*10) #與continue不是同級**,但位於同一迴圈變數為j的for迴圈
執行結果為:
j = 0 , i = 0
0 **********
j = 1 , i = 0
1 **********
j = 3 , i = 0
3 **********
j = 0 , i = 1
0 **********
j = 1 , i = 1
1 **********
j = 3 , i = 1
3 **********
可以看出,當continue
執行時,其所屬的最底層迴圈體之內的所有的位於continue
之後的語句均不執行,無論是否與continue
同級。即程式進入了上述迴圈體的下一次迴圈。
break
的例子
for i in range(2):
for j in range(4):
if j == 2:
break
print("cannot run")
else:
print('j =',j,',','i =',i)
print(j,'*'*10)
執行結果如下:
j = 0 , i = 0
0 **********
j = 1 , i = 0
1 **********
j = 0 , i = 1
0 **********
j = 1 , i = 1
1 **********
可以看出,break
執行後,不但其所屬迴圈體的後續**不再執行,而且該迴圈體的後續迴圈也不再執行,即該迴圈體結束了。但更高層的迴圈體可以繼續執行。
可以看出,無論是pass
、continue
還是break
,其作用範圍均為其所在的迴圈體內,這一點值得注意。
死迴圈中的cin
在編寫程式時,遇到了乙個致命的問題,原本是想使用cin輸入乙個int型的數值,但是錯誤的輸入了char或者string型,導致程式進入死迴圈。類似程式如下 include using namespace std int main while i 0 return 0 定義了乙個int型的 i 但是當...
巢狀迴圈中的bug
在專案中遇到以下問題 該功能在實際投產中使用較少,列表記錄也不是很多,隨著時間的流逝資料逐漸增多,問題出現 列表中有些資料不顯示 img 圖中黑框部門,檢查了很長時間。發現該資料是使用兩層巢狀顯示,其中迴圈次數又是取使用者設定中的分頁條數。如果資料太多,分頁條數設定為10,很多記錄就查不到,內迴圈只...
Python迴圈中的else
python迴圈中的else如果此迴圈迴圈完畢,那麼執行else後的語句,如果被break了,則不執行while中的else 正常情況 i 0while i 5 print i i 1else print else clause out put 01 234else clause 因為while迴圈...