if
語句前面介紹過,主要注意點如下:
①格式如下:
if
(expression)
else
if
語句如果後面不加{}
塊宣告,則只能跟一行語句;
②塊內定義的變數生命週期只限於塊內
③可以巢狀:
if
(expression)
}
也可以重複:
if
(expression)
else
if(expression)..
..
④if
語句內可以加入return
語句,對函式進行提前的返回。
對於多種並列判斷,比如:如果今天是周一:***x;是周二:***;是週三:***x……
用多個並列的if...else...
並不如switch
更有效率。
switch
的語法如下:
switch
(color)
switch
後面跟的是判斷的變數,然後跟case
後面的判斷條件進行匹配,如果一樣就執行該case
後的語句。
但switch
語句的使用上有如下三點注意事項:
①通常switch
後面跟的這個表示式只是乙個變數,但它可能是更複雜的東西,如nx + 2
或nx - ny
。對此表示式的乙個限制是它必須求值為整數型別(即char,short,int,long,long long、enum
)。此處不能使用浮點變數,字串和其他非整數型別。
②當與某個case
匹配執行完它下面的語句後,如果沒有終止條件會繼續執行下面其他case
的條件,這些終止條件包括:return、exit、goto....
。
有時候需要執行某case
及以後的就不加終止條件,如果只希望執行該case
語句,則一定要加乙個break;
語句。
switch(2
)
這段**的執行結果是:
2
3
4
③
default
語句是用來表達else
意思的語句,通常放到最後,表示其他的所有情況。如上段**所示。
switch(1
)
case
跟if
語句的區別在於,case
後面不需要乙個塊來執行多個語句,可以直接跟多行語句,並且可以定義變數,但是不能對變數定義進行初始化。這是因為變數的定義只是一種宣告,並沒有語句的執行,初始化是語句的執行,但是只有符合case
判斷條件的語句才能執行,所以這裡定義變數和變數的賦值必須分開。
所以及時是case1
定義了變數y
,並且沒有執行case1
,但是直接執行case2
也能用y
。cae
以外也不能初始化。
如果要進行初始化,一定要在乙個塊內進行:
switch(1
)default
: std:
:cout <<
"default case"
<< std:
:endl;
break
;}
while
語句的表示式跟if
的表示式有點接近,先判斷符合條件就執行語句:
while
(expression)
code;
注意點如下:
①跟if
語句一樣,只能跟一條語句,如果是多個語句,需要用乙個塊,所以塊內如果定義變數,每一次都會銷毀和重建。如果塊內定義的是strcuture
和class
,這會導致效能問題。所以需要提前建立。
②表示式的判斷結果是true
或者false
,用於迴圈判斷的變數名推薦使用iii、jjj、kkk、count
等,如果用ijk
,可能搜尋時候變數名不唯一,會導致意外情況。
用於迴圈判斷的變數不屬於塊內建立的區域性變數,因為它不能每次都被銷毀重建。
③無限迴圈只需要把表示式裡寫進1
或者true
。然後內部寫判斷條件,使用return
或者break
跳出迴圈。
對於while
迴圈如果第一次判斷為假,那就無法執行語句,如果需要至少執行一次迴圈,就用do...while
,先執行在判斷。
語法格式如下:
for
(init-statement; condition-expression; end-expression)
statement
for
迴圈等價於如下while
迴圈:
}// 判斷變數銷毀
舉例如下:
for
(int count=
0; count <10;
++count)
std:
:cout << count <<
" ";
能看的出來for
迴圈遠比while
迴圈要簡介,但是對於無限迴圈,最好使用while
迴圈。其他迴圈推薦使用for
迴圈。
中斷迴圈之前已經間接介紹過break
,用於直接打斷迴圈,return
用於中斷迴圈直接結束函式執行,除此之外還有乙個中斷迴圈的方式:continue
。它的含義是:該次迴圈下面的語句不執行,直接進入下一次迴圈。
for
(int count=
0; count <20;
++count)
這段程式將直接列印出不能被4整除的所有整數。 C 第五章程式流程
1,選擇語句 if語句和switch語句,if語句中的else與它上面的,離它最近的,尚未匹配的if語句匹配 switch語句中的控制語句的型別有整數,字元,字串,列舉 可以利用break跳出switch語句 switch語句中可以有default語句,乙個switch語句最多只有乙個default...
第五章 程式功能設計
二.資料表建立語句 create table message id int unsigned not null auto increment primary key,title varchar 120 not null default content varchar 255 not null def...
第五章 程式控制結構
1 比較運算 非空ls 1 if ls 資料結構不為空 變數不為0 none false 則條件成立 print 非空 else print 空的 2 邏輯運算 與 或 非 a 10b 8c 12print a b and b c 與 print a b or b c 或 print not a b...