例如以下這個函數:
state = 1
def set_state(state):
while state:
set = int(input('請輸入9或5,顯示"hello world"\n'))
if set == 9 or set == 5:
print('hello world')
state = int(input('輸入1繼續,輸入0停止!\n'))
else:
print('請輸入要求的值!')
set_state(state)
# break
set_state(state)
print('end')
這個函數設計的目的是讓用戶輸入指定的值,若輸入的值並非指定值,則重新輸入。
不寫break,運行時就會出現錯誤,乍一看正確:
但:
此時箭頭所指的地方,所輸入的0傳給了其他條件下,第二次運行函數時的狀態下,第一個狀態仍爲1,並未改變,因此在退出了第二次運行的函數後,仍然會繼續運行第一個函數中state = 1的循環,導致還得再次輸入0去改變state的值才能停止運行
因此,在再次調用該函數的語句後面,應該加一句breaK語句,直接退出當前的循環,避免出現函數執行的效果達不到預期效果,
加入break以後的截圖:
break爲跳出本層循環,隻影響一層
continue爲跳出本次循環,進行下一次循環
return爲爲直接跳出當前函數