跳轉到內容

程式設計基礎/實踐:迴圈

來自華夏公益教科書

章節摘要

[編輯 | 編輯原始碼]
  • 迭代控制結構 - 直到程式達到特定狀態或對集合中的每個元素都應用了操作,才會執行語句或程式碼塊。
  • While 迴圈 - 一種控制流語句,允許根據給定的布林條件重複執行程式碼。
  • Do While 迴圈 - 一種控制流語句,至少執行一次程式碼塊,然後根據程式碼塊末尾給定的布林條件重複執行程式碼塊,或者不執行。
  • 標誌概念 - 標誌是一個變數,用於儲存通常用於控制程式的資訊。
  • For 迴圈 - 一種先測試迴圈,重複執行程式碼,直到條件變為假。For 迴圈是確定性迴圈,通常用作計數迴圈,其中迭代次數已知。
  • 分支語句 - 計算機程式中的指令,可以使計算機開始執行不同的指令序列,從而偏離其預設行為,即按順序執行指令。
  • 自增和自減運算子 - 一元運算子,分別將它們的運算數加 1 或減 1。
  • 整數溢位 - 當算術運算試圖建立一個超出給定位數所能表示的範圍的數值時,就會發生溢位 - 大於最大值或小於最小值。
  • 巢狀迴圈 - 巢狀迴圈將一個 for 迴圈放在另一個 for 迴圈內。內迴圈在每次外迴圈迭代中都會重複執行。

複習問題

[編輯 | 編輯原始碼]

判斷題

[編輯 | 編輯原始碼]
  1. do-while 和 repeat until 結構的行為完全相同。
  2. 學生有時會混淆賦值和相等。
  3. repeat until 迴圈控制結構在所有程式語言中都可用。
  4. 由於標誌經常使用,它們通常是特殊的資料型別。
  5. do-while 是迴圈前的測試。
  6. 只有 for 迴圈可以是計數迴圈。
  7. 整數資料型別具有模運算屬性。
  8. \n 的轉義程式碼是格式化輸出的一部分。
  9. C++ 程式語言不允許巢狀 for 迴圈。
  10. 計數迴圈使用所有四種迴圈屬性。
  11. Do While 迴圈是一組語句,在檢查表示式之前執行一次或多次。
  12. 在 Python 中,While 迴圈和 Do While 迴圈都使用 While 語句。
  13. 自減是將一個值加到變數的值上。
  14. break 是一個預定義函式,用於提前停止程式並返回到作業系統。
  15. While 迴圈會無限期地重複執行一個程式碼塊,或者直到執行退出命令為止。
  16. While 迴圈是重啟程式的最佳迴圈,因為 While 迴圈會在檢查表示式是否為真之前至少執行一次所有語句。
  17. 字首自增將一個值加到運算數左側的運算子上。

答案

  1. 錯誤 - 不同之處在於檢查條件的位置
  2. 正確 - 通常,相等使用兩個等號而不是一個。
  3. 錯誤 - 它在舊語言中比在較新的語言中更常見。
  4. 錯誤 - 標誌用於控制或指示特定操作的中間狀態或結果。
  5. 錯誤 - Do While 迴圈是迭代後控制結構測試,這意味著它們在迴圈至少執行一次後進行測試。
  6. 錯誤 - 任何型別的迴圈都可以是計數迴圈。
  7. 正確
  8. 正確
  9. 錯誤 - 巢狀迴圈涉及在另一個迴圈中迴圈。它們可以在任何語言中使用。
  10. 正確
  11. 正確
  12. 正確 - 兩者的區別在於檢查條件的位置。
  13. 錯誤 - 自增是將值加到變數的值上。
  14. 錯誤 - break 是一個分支語句,它終止現有結構。
  15. 錯誤 - Do While 迴圈會重複執行程式碼塊,直到為真,並透過退出命令退出。While 迴圈會無限迴圈,或者滿足條件。
  16. 錯誤 - While 迴圈始終檢查表示式以檢視它是否為真,然後再執行關聯的語句,使其成為重啟程式的糟糕迴圈。重啟程式的最佳迴圈實際上是 Do While 迴圈,因為它始終在檢查表示式是否為真之前執行迴圈中的語句一次。
  17. 正確

簡答

  1. 用你自己的話描述 Do 迴圈和 Do While 迴圈之間的區別。
  2. 如果你想建立一個程式,該程式在啟動時要求輸入姓名,並且在得到姓名之前不會繼續,你會使用哪種迴圈,為什麼?

填空:練習真值表

[編輯 | 編輯原始碼]
  1. True AND False = _____
  2. False AND NOT False = _____
  3. True OR True = _____
  4. True AND False = _____
  5. False OR NOT True = _____
  6. True AND True = _____
  7. False OR True = _____
  8. False AND False = _____

使用虛擬碼、流程圖工具或您選擇的程式語言完成以下活動。為輸入、每種型別的處理和輸出使用單獨的函式。透過傳遞引數和返回值來避免全域性變數。建立測試資料以驗證每個程式的準確性。在程式頂部添加註釋,幷包括對任何使用資源的引用。

While 迴圈

[編輯 | 編輯原始碼]

使用 while 迴圈結構完成以下操作。

  1. 建立一個程式,使用迴圈為給定值生成一個乘法表達式列表。要求使用者輸入值和要顯示的表示式數量。例如,對於值 1,三個表示式列表將為
    1 * 1 = 1
    1 * 2 = 2
    1 * 3 = 3
    對於值 3,五個表示式列表將為
    3 * 1 = 3
    3 * 2 = 6
    3 * 3 = 9
    3 * 4 = 12
    3 * 5 = 15
  2. 回顧MathsIsFun:平均值的定義。建立一個程式,要求使用者輸入成績。首先詢問使用者他們想要輸入多少個成績。然後使用迴圈來請求每個成績並將其新增到總數中。最後,計算並顯示輸入成績的平均值。
  3. 回顧MathsIsFun:圓周率。編寫一個程式,使用尼拉坎塔級數根據使用者輸入的迭代次數來計算圓周率。

Do While / Repeat Until 迴圈

[編輯 | 編輯原始碼]

使用 do while / repeat until 迴圈結構完成以下操作。

  1. 回顧MathsIsFun:平均值的定義。建立一個程式,要求使用者輸入成績。使用迴圈來請求每個成績並將其新增到總數中。繼續接受成績,直到使用者輸入負值或不輸入值(您選擇)。最後,計算並顯示輸入成績的平均值。
  2. 回顧可汗學院:猜數字遊戲。編寫一個程式,允許使用者在 0 到 100 之間(包括 0 和 100)選擇一個數字。然後讓程式嘗試猜出使用者的數字。從中間值 (50) 開始,詢問使用者他們的數字是 (h)igher、(l)ower 還是 (e)qual 於猜測值。如果他們指示較低,則猜測新的中間值 (25)。如果他們指示較高,則猜測新的中間值 (75)。繼續有效地猜測較高或較低,直到他們指示相等,然後打印出猜出其數字所需的猜測次數,並結束程式。
  3. 將 do while / repeat until 迴圈新增到先前章節中的任何活動中。在使用者想要繼續或使用者想要停止之前繼續執行程式。
  4. 在之前章節的任何活動中新增一個輸入驗證迴圈。驗證輸入有效後,再返回值。在輸入無效時,提示使用者重新輸入值。

For 迴圈

[編輯 | 編輯原始碼]

使用 for 迴圈結構完成以下內容。

  1. 建立一個程式,使用迴圈為給定值生成一個乘法表達式列表。要求使用者輸入值和要顯示的表示式數量。例如,對於值 1,三個表示式列表將為
    1 * 1 = 1
    1 * 2 = 2
    1 * 3 = 3
    對於值 3,五個表示式列表將為
    3 * 1 = 3
    3 * 2 = 6
    3 * 3 = 9
    3 * 4 = 12
    3 * 5 = 15
  2. 回顧MathsIsFun:平均值的定義。建立一個程式,要求使用者輸入成績。首先詢問使用者他們想要輸入多少個成績。然後使用迴圈來請求每個成績並將其新增到總數中。最後,計算並顯示輸入成績的平均值。
  3. 回顧MathsIsFun:圓周率。編寫一個程式,使用尼拉坎塔級數根據使用者輸入的迭代次數來計算圓周率。

巢狀迴圈

[編輯 | 編輯原始碼]

使用巢狀迴圈結構完成以下內容。

  1. 回顧 MathsIsFun: 10x 可列印乘法表。建立一個使用巢狀迴圈生成乘法表的程式。不要簡單地建立一個 10x10 的表格,而是要求使用者輸入起始值和結束值。包含行和列標籤。例如,從 1 到 3 的輸出可能如下所示
        1   2   3
    1   1   2   3
    2   2   4   6
    3   3   6   9
    從 3 到 5 的輸出可能如下所示
        3   4   5
    3   9  12  15
    4  12  16  20
    5  15  20  25
  2. 在本章的任何活動中新增一個 do while / repeat until 迴圈。在使用者想要繼續或使用者想要停止時繼續執行程式。

參考資料

[編輯 | 編輯原始碼]
華夏公益教科書