------- ios培訓、android培訓、期待與您交流! ----------
1. 條件語句
像其它語言一樣 c也提供條件語句。在c中條件語句的一
般形式為:
if(表示式)
語句1;
else
語句2;
上述結構表示: 如果表示式的值為非0(ture)即真, 則執行語句1, 執行完語
句1從語句2後開始繼續向下執行; 如果表示式的值為0(false)即假, 則跳過語句
1而執行語句2。所謂表示式是指關係表示式和邏輯表示式的結合式, 關於表示式
前面已作過介紹, 這是不再重複。
注意:1. 條件執行語句中"else 語句2;"部分是選擇項, 可以預設, 此時條件語句
變成:if(表示式) 語句1;
表示若表示式的值為非0則執行語句1 , 否則跳過語句1繼續執行。
2. 如果語句1或語句2有多於一條語句要執行時, 必須使用"" 把這些
語句包括在其中, 此時條件語句形式為:
if(表示式)
else
3. 條件語句可以巢狀, 這種情況經常碰到, 但條件巢狀語句容易出錯, 其
原因主要是不知道哪個if對應哪個else。
例如:if(x>20||x<-10)
if(y<=100&&y>x)
printf("good");
else
printf("bad");
對於上述情況, c規定: else語句與最近的乙個if語句匹配, 上例
中的else與if(y<=100&&y>x)相匹配。為了使else與if(x>20||x<-10)相匹配, 必
須用花括號。如下所示:
if(x>20||x<-10)
else
printf("bad");
4. 可用階梯式if-else-if結構。
階梯式結構的一般形式為:
if(表示式1)
語句1;
else if(表示式2)
語句2;
else if(表示式3)
語句3;..
.else
語句n;
這種結構是從上到下逐個對條件進行判斷, 一旦發現條件滿點足就執行與它
有關的語句, 並跳過其它剩餘階梯; 若沒有乙個條件滿足, 則執行最後乙個else
語句n。最後這個else常起著"預設條件"的作用。
同樣, 如果每乙個條件中有多於一條語句要執行時, 必須使用""把這
些語句包括在其中。
2 迴圈語句
c提供三種基本的迴圈語句: for語句、while語句和do-while語句。
1.3.2.1 for迴圈
for迴圈是開界的。它的一般形式為:
for(《初始化》; 《條件表過式》; 《增量》)
語句;初始化總是乙個賦值語句, 它用來給迴圈控制變數賦初值; 條件表示式是一
個關係表示式, 它決定什麼時候退出迴圈; 增量定義迴圈控制變數每迴圈一次後
按什麼方式變化。這三個部分之間用";"分開。
例如:for(i=1; i<=10; i++)
語句;上例中先給i賦初值1, 判斷i是否小於等於10, 若是則執行語句, 之後值增
加1。再重新判斷, 直到條件為假, 即i>10時, 結束迴圈。
注意:1. for迴圈中語句可以為語句體, 但要用""將參加迴圈的語句括起來。
2. for迴圈中的"初始化"、"條件表示式"和"增量"都是選擇項, 即可以預設,
但";"不能預設。省略了初始化, 表示不對迴圈控制變數賦初值。 省略了條件
表示式, 則不做其它處理時便成為死迴圈。省略了增量, 則不對迴圈控制變數進
行操作, 這時可在語句體中加入修改迴圈控制變數的語句。
3. for迴圈可以有多層巢狀。
例16:
main()
輸出結果為:
i j k
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
4. while迴圈
while迴圈的一般形式為:
while(條件)
語句;while迴圈表示當條件為真時, 便執行語句。直到條件為假才結束迴圈。並
繼續執行迴圈程式外的後續語句。
例:#include
main()
上例中, while迴圈是以檢查c是否為回車符開始, 因其事先被初始化為空,
所以條件為真, 進入迴圈等待鍵盤輸入字元; 一旦輸入回車, 則c='\x0d', 條件
為假, 迴圈便告結束。
與for迴圈一樣, while迴圈總是在迴圈的頭部檢驗條件, 這就意味著迴圈可
能什麼也不執行就退出。
注意:1. 在while迴圈體內也允許空語句。
例如:while((c=getche())!='\x0d');
這個迴圈直到鍵入回車為止。
2. 可以有多層迴圈巢狀。
3. 語句可以是語句體, 此時必須用""括起來。
例18:
#include
main()
5 do-while 迴圈
do-while 迴圈的一般格式為:
do語句;
while(條件);
這個迴圈與while迴圈的不同在於: 它先執行迴圈中的語句, 然後再判斷條
件是否為真, 如果為真則繼續迴圈; 如果為假, 則終止迴圈。因此, do-while循
環至少要執行一次迴圈語句。
同樣當有許多語句參加迴圈時, 要用""把它們括起來。
1.多分支選擇語句
在編寫程式時, 經常會碰到按不同情況分轉的多路問題, 這時可用巢狀if
-else-fi語句來實現, 但if-else-if語句使用不方便, 並且容易出錯。對這種情
況, c提供了乙個多分支選擇語句.格式為:
switch(變數)
執行switch語句時, 將變數逐個與case後的常量進行比較, 若與其中一
個相等, 則執行該常量下的語句, 若不與任何乙個常量相等, 則執行default 後
面的語句。
注意:1. switch中變數可以是數值, 也可以是字元。
2. 可以省略一些case和default。
3. 每個case或default後的語句可以是語句體, 但不需要使用""括起
來。下例的switch中變數為整數型。
例:main()}}
下例的switch中變數為字元型。
例:#include
main()}}
6 break、continue語句
break語句通常用在迴圈語句和開關語句中。當break用於開關語句switch中
時, 可使程式跳出switch而執行switch以後的語句; 如果沒有break語句, 則將
成為乙個死迴圈而無法退出。break在switch 中的用法已在前面介紹開關語句時
的例子中碰到, 這裡不再舉例。
當break語句用於do-while、for、while迴圈語句中時, 可使程式終止迴圈
而執行迴圈後面的語句, 通常break語句總是與if語句聯在一起。 即滿足條件時
便跳出迴圈。
例19:
main()
if(c==27)
break;
i++;
printf("the no. is %d\n", i);
}printf("the end");
}注意:
1. break語句對if-else的條件語句不起作用。
2. 在多層迴圈中, 乙個break語句只向外跳一層。
3 continue 語句
continue語句的作用是跳過迴圈本中剩餘的語句而強行執行下一次迴圈。
continue語句只用在for、while、do-while等迴圈體中, 常與if條件語句一
起使用, 用來加速迴圈。
例:main()
}------- ios培訓、android培訓、期待與您交流! ----------
黑馬程式設計師 C語言學習筆記之陣列(九)
ios期待與您交流!1 定義 格式 型別 陣列名 元素個數 裡面的個數必須是乙個固定值,可以是常量 比如6 8 常量表示式 比如3 4 5 7 絕對不能使用變數或者變數表示式來表示元素個數,大多數情況下不要省略元素個數2 初始化 一般形式是 型別 陣列名 元素個數 int a 2 其實相當於 int...
黑馬程式設計師 C語言學習筆記之列舉(十三)
ios期待與您交流!enum 列舉名 c中的列舉非常簡單,它的本質是整型資料,列舉的每個成員都是int型的。enum printf 列舉所佔位元組數 lu n sizeof enum 輸出 列舉所佔位元組數 4 enum 列舉名 變數名 列舉中的成員是從0開始計數的 enum enum man ma...
黑馬程式設計師 C語言學習筆記之指標基礎
ios培訓 android培訓 期待與您交流!1.指標的概念 指標是乙個特殊的變數,它裡面儲存的數值被解釋成為記憶體裡的乙個位址。2 指標的型別。先列出一些指標的型別,簡單的認識一下 1 int ptr 指標的型別是int 2 char ptr 指標的型別是char 3 int ptr 指標的型別是...