第五章 語句 5 4 迭代語句

2021-10-19 17:27:52 字數 2328 閱讀 6345

whilefor語句在執行迴圈體之前檢查條件,do while語句先執行迴圈體,然後再檢查條件。

只要條件為真,while 語句就重複的執行迴圈體,它的語法形式如下:

while (conditon)

statement

在 while 結構中,只要 condition 的求值結果為真就一直執行 statement。 condition 不能為空,如果 condition 第一次求值就得 false,statement 一次都不執行。

定義在 while 條件部分或者 while 迴圈體內的變數每次迭代都經歷從建立到銷毀的過程。

使用 while 迴圈

當不確定到底要迭代多少次時,使用 while 迴圈比較合適。想在迴圈結束後訪問迴圈控制變數也應該使用 while.

vector<

int> v;

int i;

while

(cin >> i)

v.push_back

(i);

// 尋找第乙個負值元素

auto beg = v.

begin()

;while

(beg != v.

end()&&

*beg >0)

++beg;

if(beg == v.

end())

// 此時我們直到 v 中的所有元素都大於等於 0

for 語句的語法形式是:

for (init-statement; condition; expreesion)

statement;

init-statement負責初始化乙個值,必須是以下三種形式中的一種:宣告語句、表示式語句或者空語句。

condition控制迴圈的條件,

expression負責修改init-statement初始化的變數。

傳統 for 迴圈的執行流程

for 語句頭中定義的物件只在 for 迴圈體可見。

for 語句頭中多重定義

init-statement可以定義多個物件,但是只能有一條宣告語句,因此所有變數的基礎型別必須相同

// 記錄下 v 的大小,當到達原來的最後乙個元素後結束迴圈

for(

decltype

(v.size()

) i =

0, sz = v.

size()

; i != sz;

++i)

v.push_back

(v[i]

);

省略 for 語句頭的某些部分

for 語句頭能省略掉init-statementconditionexpression中的任何乙個(或者全部)。

如果無需初始化,則我們可使用一條空語句作為init-statement

省略condition的效果等價於在條件部分寫了乙個 true。因為條件的值永遠是 true,所以在迴圈體內必須有語句負責退出迴圈,否則迴圈就會無休止地執行下去。

省略expression要求條件部分或者迴圈體必須改變迭代變數的值。

範圍 for 語句可以遍歷容器或其他序列的所有元素。語法形式如下:

for (declaration : expression)

statement;

expression表示的必須是乙個序列,比如用花括號括起來的初始值列表或者vectorstring等型別的物件,這些物件的共同特點是擁有能返回迭代器的beginend成員。

declaration定義乙個變數,序列中的每個元素都得能轉換成該變數的型別。

do while 語句先執行迴圈體後檢查條件。語法形式如下:

do 

statement

while (condition);

注意:condition使用的變數必須定義在迴圈體之外。

第五章 語句

由於c primer第五版採用的c 11新標準,手頭沒有支援c 11的編譯器,推薦大家用ideone,支援c 14並且可以輸入輸出。從今天開始整理自己做的課後習題,網上答案很多,但自己寫的也是一種不一樣的思路。exercise 5.20 include include using namespace...

第五章 條件語句

使用條件語句能完成一些判斷工作,使程式的走向改變。因此條件語句也叫做分支語句。條件語句有if else和switch兩種。if else的格式為 if 條件表示式 else 其中 條件表示式 返回乙個布林值,當其值為真時執行if後的語句,否則執行else後的語句。如 if yourage 18 sy...

《C Primer》第五章 語句

身為c 的零基礎初學者,短期內把 c primer 啃下來是乙個比較笨但是有效的方法,一方面可以掌握比較規範的c 語法 避免被專案中亂七八糟的風格帶跑偏 另一方面又可以全面地了解c 語法以及c 11新標準 後續要做的事情就剩下查漏補缺,不斷完善自己的知識體系 個人感覺從零學習一門新知識比較好的方法是...