for-loop 主要是用來處理重複特定「次數」的迴圈
for迴圈的寫法如下:
要注意,間隔三個敘述是使用分號,不是逗號。
迭代器 iterator
: 指用來遍歷特定範圍的變數,
其中的初始宣告指的也是迭代器的初始宣告。
例如:
輸出:
1 2 3 4 5 6 7 8 9 10
c++11的新增寫法:
這種寫法的間隔符號是冒號,對執行範圍內的每個單元重複執行。
例如:
可以針對s
字串中的每個字元重複執行。
且c++11也新增了自動型別 auto
,使得這種寫法更為便利,例如:
可以寫成
可以再寫成
相比第一個看起來簡單非常多吧!而且還更好理解。
(這段範例程式碼有些還沒講過的內容,例如 map
,之後會再講到)
巢狀迴圈就是迴圈內還有一個或一個以上的迴圈,以下為列印三角形的例子:
輸出結果:
while-loop 主要是用來處理具有特定「條件」的迴圈,
只要滿足條件式,就進入迴圈,直到不滿足條件才結束。
while迴圈的寫法如下:
例如:
會一直等待使用者輸入,直到輸入值為0後結束。
與while迴圈基本相同,但是會先執行一次,才開始判斷條件式。
do-while迴圈的寫法如下:
以與while迴圈的範例程式設計出同樣的功能為例:
看起來更簡潔一些也更好理解對吧!
while迴圈與do-while迴圈都有適合的用途,就看使用者怎麼去運用。
在寫程式時要特別注意,for迴圈與while迴圈的後面都不用加分號,但是do-while迴圈需要。
continue
在迴圈中出現時,可以跳過在coutinue
後方的敘述,並回到迴圈的開頭,執行下一次的迴圈。以上敘述可能比較不好理解,以下舉個例子來說明:
輸出結果:
在上述程式碼中,i
為2
時,讓他continue
回到迴圈的起點,執行下一次迴圈,並不會執行當次if
後面的敘述。
break
指令可以直接跳離該迴圈,並繼續執行迴圈外的敘述,在上一章節的選擇結構中,有提到switch
在每次case
結束時,都需要break
出去,以免會繼續往下執行,下面一樣舉一個簡單的例子來說明:輸出結果:
goto
語法不建議使用,除了容易造成程式碼閱讀上的不便,也會容易形成不容易尋找的錯誤,想要知道如何使用請自行Google,可以閱讀知名論文goto有害論原文。