應用程式設計/迴圈
本課介紹迴圈,包括 while、for、do 等迴圈。迴圈允許您在程式碼中重複類似的操作。迴圈會執行一段程式碼塊,直到迴圈遍歷完一個物件為止。在 for 迴圈中,如將進一步解釋的那樣,迴圈將執行,直到它遍歷完可迭代物件中的每個專案為止。for 迴圈有助於減少程式碼中的重複,因為它們允許您多次執行相同的操作。所有迴圈都是旨在重複執行的指令序列,直到滿足或實現某個條件為止。迴圈只需要編寫一次,但可能重複多次。因此,它們用於根據程式的任務多次執行某些任務,避免在程式中建立額外的、不必要的步驟。[1]
迴圈是許多程式的基本結構。實際上,除最基本的程式之外,所有程式都可能至少包含一個迴圈。迴圈非常有用,可以為開發人員節省大量時間。[2]
我們可以詳細說明節省時間的這一部分。讓我們考慮這樣一種情況:您想列印 Hello, World! 五次。
print("Hello, World!")
print("Hello, World!")
print("Hello, World!")
print("Hello, World!")
print("Hello, World!")
輸出
Hello, World! Hello, World! Hello, World! Hello, World! Hello, World!
這很簡單,但同樣地,讓我們考慮另一種情況,您想寫 Hello, World! 一千次。我們當然不能寫一千次 print() 語句。幾乎所有程式語言都提供了一個名為迴圈的概念,它有助於將一個或多個語句執行到所需的次數。所有高階程式語言都提供各種形式的迴圈,這些迴圈可用於重複執行一個或多個語句。[3]
它們允許您重複執行一行或多行程式碼。您可以重複迴圈結構中的語句,直到條件為 True 為止,直到條件為 False 為止,執行指定的次數,或者對集合中的每個元素執行一次。[4]
以下屬於迴圈結構
- while 迴圈
- do-while 迴圈
- for 迴圈
- break 語句
- continue 語句[5]
它使特定的一組條件能夠重複執行,直到滿足某個條件為止。[6] 下面是 for 迴圈的示例
for x in range(0, 3):
print("We're on time %d" % (x))
Python for 語句按順序遍歷序列的成員,每次執行程式碼塊。它們通常用於您希望重複執行一段程式碼塊的固定次數的情況。[7]
while 迴圈在滿足或遵循特定條件時實現。只要條件語句不滿足,就可以終止 while 迴圈。換句話說,當 while 迴圈的測試表達式變為 false 時,會忽略 while 迴圈內部的程式碼,並立即執行以下程式碼。 [8]
#While loop Format
While ''Expression''
''Statement''
實現 while 迴圈的另一種方法是控制重複次數。可以透過控制變數來確定 while 的重複次數。
#While loop repetition Format
n = 0 #repetition control variable
While (n < 5): n = n + 1; # the repetition of the loop is limited to 5 times, incrementing by 1 each time.
Statement
#While loop repetition example
n = 0
while (n < 5): n = n + 1; print(“Welcome to CIS206”)
輸出給出以下結果
Welcome to CIS206 Welcome to CIS206 Welcome to CIS206 Welcome to CIS206 Welcome to CIS206
在 while 迴圈操作中,有兩個不同的控制表示式:“break” 和“continue”。[9] break 或 continue 的使用允許 while 迴圈內部存在多個條件語句。break 會立即終止 while 迴圈。continue 會切換到備選條件語句,只要原始 while 迴圈的條件語句為 True 即可。
#While loop - Break example
n = 3
while n > 0:
n = n + 1
if n == 1:
break #break is engaged if the while loop is repeated once
print (n)
print('Loop is terminated')
#While loop - Continue example
n = 3
while n > 0:
n = n + 1
if n == 2:
continue #continue is engaged if the while is repeated twice
print (n)
print('Loop is terminated')
do-while 與普通 while 迴圈有明顯的區別。區別在於 do-while 至少執行一次。[10] do-while 迴圈以條件語句開頭。
#Do-while loop template
n = 0 #number of repetition controller
while True:
print(n)
n = n + 1
if (n > 5);
break #when the execution is repeated five times, the while operation is terminated
無限迴圈(有時稱為無休止迴圈)是一段程式碼,它沒有功能性退出,因此會無限期地重複。通常,會執行某個過程,例如獲取資料項並更改它,然後檢查某個條件,例如計數器是否已達到規定的數量。如果無法確定指定條件的存在,則序列中的下一條指令會告訴程式返回到第一條指令並重復序列,這通常會持續到程式在一定持續時間後自動終止,或者作業系統終止程式並出現錯誤。[11]
在大多數情況下,無限迴圈並非有意為之,而是程式設計不當的結果。但是,存在需要有意使用無限迴圈的情況。最常見的發生情況是現代計算機。現代互動式計算機要求計算機不斷監控使用者輸入或裝置活動,因此在某些基本層面上,必須存在一個無限的空閒處理迴圈,該迴圈必須持續到裝置關閉或重置為止。[12]
apples = 4
while apples > 3:
print("You have " + apples + " apples.")
apples = apples + 1
''You have 4 apples.''
''You have 5 apples.''
''You have 6 apples.''
''You have 7 apples.''
''You have 8 apples.''
''...''
在上面的示例中,迴圈旨在在蘋果數量在 3 個或以下時中斷。但是,變數“apples”從 4 開始。每次迴圈迭代時,“apples”都會增加 1。在這種情況下,“apples”永遠不會降至零,並且迴圈會無限期地重複。
while True:
print("This statement is true")
else:
print("This statement is not true")
''This statement is true''
''This statement is true''
''This statement is true''
''This statement is true''
''...''
在這個示例中,程式設計師未能建立break 語句來退出迴圈。由於沒有 break 語句或任何會導致迴圈為“false”的程式碼,因此迴圈會無限期地重複。
當一個迴圈放在另一個迴圈的主體內部時,就會發生巢狀迴圈。內部迴圈在每次執行外部迴圈時都會執行。
i = 1
j = 5
while i < 4:
while j < 8:
print(i, ",", j)
j = j + 1
i = i + 1
''1 , 5''
''2 , 6''
''3 , 7''
上面的函式包含兩個“while”迴圈;一個巢狀在另一個內部。外部迴圈首先執行,其中“i”小於 4。這會導致內部迴圈執行,其中“j”小於 8。當“i”不再小於 4 時,函式就會中斷;在第四次迭代時。
break 語句 - 此語句會終止包含它的迴圈。程式控制流向迴圈主體後的語句。如果該語句位於巢狀迴圈(迴圈在另一個迴圈內部)中,則該語句將終止最內層的迴圈。
條件 - 迴圈檢查此語句以確定是否應該再次迴圈或停止迴圈。 它是滿足特定條件時執行的一組規則。 它有時被稱為 If-Then 語句,因為如果滿足條件,則執行操作。
繼續語句 - 此語句用於迴圈內部。 當在迴圈中遇到此語句時,控制跳轉到迴圈的開頭進行下一次迭代,跳過當前迭代迴圈體內語句的執行。
計數控制 - 迴圈中,變數(如計數器)決定迴圈執行的次數。
Do-While 迴圈 - Do-while 迴圈是一種控制流語句,它至少執行一次程式碼塊,然後根據程式碼塊末尾給定的布林條件重複執行程式碼塊,或不執行。
退出 - 用於過早停止程式並返回到作業系統的預定義函式。 用於完成或退出封閉迴圈語句的執行。 如果語句包含條件,則退出迴圈是條件性的。
標誌 - 通常用於控制或指示特定操作的中間狀態或結果。 它是充當函式或程序訊號的值。 該值用於確定程式的下一步。
For 迴圈 - For 迴圈是一種用於指定迭代的控制流語句,它允許重複執行程式碼。 For 迴圈有兩個部分:一個指定迭代的標題,以及一個在每次迭代中執行一次的程式碼體。
ForEach 迴圈 - ForEach(或 foreach,有時稱為迭代 for 迴圈)是一種用於遍歷集合中專案的控制流語句。
Goto - 一個非結構化分支命令,使程式中的邏輯跳轉到不同的位置。
無限迴圈(或無休止迴圈) - 計算機程式中的一系列指令,這些指令無限迴圈,要麼是因為迴圈沒有終止條件,要麼是因為終止條件永遠無法滿足。
迭代控制結構 - 直到程式達到特定狀態或對集合或陣列的每個元素都應用了操作,才會執行的語句或程式碼塊。
迴圈計數器 - 控制迴圈迭代的變數(一種計算機程式語言構造)。 它的名稱來源於大多數情況下,此構造的結果是變數以某種有序序列取出一系列整數值。
巢狀迴圈 - 迴圈內的迴圈。 內部迴圈將根據外部迴圈的迭代次數重複。
Pass 語句 - 此語句用作將來程式碼的佔位符。 當執行此語句時,不會發生任何事情;但是,當不允許使用空程式碼時,可以避免出現錯誤。
Raise - 此關鍵字用於引發異常。 您可以定義要引發的錯誤型別以及要列印給使用者的文字。
Return - 一個分支語句,它會導致函式跳轉回呼叫它的函式。 允許它也用作退出迴圈的一種方式。 Return 語句從函式中返回偶爾的結果,或者只是完成函式。 在任何函式的末尾都有一個隱式返回,因此如果您的函式以自然方式結束,而沒有返回值,則不需要使用它。
哨兵值 - 它是在使用其存在作為終止條件的演算法的上下文中的一種特殊值,通常在迴圈或遞迴演算法中。 該值是一種帶內資料形式,使得當沒有帶外資料(例如顯式大小指示)提供時,可以檢測資料的結束。
While 迴圈 - While 迴圈是一種控制流語句,它允許根據給定的布林條件重複執行程式碼。
- ↑ https://en.wikiversity.org/wiki/Programming_Fundamentals/Loops
- ↑ https://www.dpscomputing.com/blog/2012/09/13/programming-the-purpose-of-loops/
- ↑ https://www.wisdomjobs.com/e-university/computer-programming-tutorial-1600/computer-programming-loops-18379.html
- ↑ https://docs.microsoft.com/en-us/dotnet/visual-basic/programming-guide/language-features/control-flow/loop-structures
- ↑ https://www.guru99.com/c-loop-statement.html
- ↑ https://study.com/academy/lesson/for-loop-definition-example-results.html
- ↑ https://wiki.python.org/moin/ForLoop
- ↑ https://www.geeksforgeeks.org/python-while-loops/#:~:text=In%20Python%2C%20While%20Loops%20is,a%20given%20condition%20is%20satisfied.&text=When%20a%20while%20loop%20is,the%20loop%20body%20is%20executed.
- ↑ https://realpython.com/python-while-loop/
- ↑ https://www.educative.io/edpresso/how-to-emulate-a-do-while-loop-in-python
- ↑ WhatIs.com
- ↑ 無限迴圈
- ↑ https://beginnersbook.com/2018/01/python-while-loop/ BeginnersBook