迴圈中的pass continue以及break

2021-08-28 19:28:47 字數 1871 閱讀 5089

passcontinue以及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執行後,不但其所屬迴圈體的後續**不再執行,而且該迴圈體的後續迴圈也不再執行,即該迴圈體結束了。但更高層的迴圈體可以繼續執行。

可以看出,無論是passcontinue還是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迴圈...