黑馬程式設計師 C語言學習筆記之基本程式結構

2021-06-21 10:38:05 字數 4057 閱讀 2426

------- 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 指標的型別是...