控制語句

程序的三種基本結構

複合語句

將若干個C語句使用花括號{ }包括起來造成複合語句。花括號內能夠包含任何C語句,函數

其通常形式爲:測試

{spa

語句1;code

語句2;blog

……it

語句n;for循環

}table

1.if條件分支語句

if語句有三種語法形式,構成三種分支結構。class

1)流程(單選控制結構)變量

語句形式以下:

if (表達式)語句;

其中,表達式能夠是任何種類的表達式。

執行過程當中:若表達式的值爲邏輯真(非0值),則執行if的內嵌語句;若表達式的邏輯值爲假(0值),則跳過該語句,執行if語句的下一條語句。

單選控制結構只有1條語句可供選擇:或者執行,或者不執行。

如:高考分數大於650分,則選擇清華大學。

if (scores > 650) University=Tsinghua University;

2)if…else流程(二選一控制結構)

語句形式以下:

if (表達式)

   語句1;

else

   語句2;

表明兩路分支結構,即二選一控制結構。

執行過程:若是表達式的值爲真,則執行語句1;不然,執行語句2.

如,求b的絕對值

if (b>=0)

   a=b;

   else

   a=-b;

若是語句一、語句2不須要採用複合語句時,if語句能夠用條件運算符?:簡化。

如,求b的絕對值能夠這麼寫

a=(b>=0)?b:-b;

3)else…if流程(多選一控制結構)

語句形式以下:

if ( 表達式1)        語句1;

else if(表達式2)  語句2;

else if(表達式3)  語句3;

……

else if(表達式n)    語句n;

else                      語句n+1;

根據條件的斷定,進行多路分支選擇,即多選一控制結構。

執行過程:依次計算各表達式的值;若某個表達式的值爲真,則執行相應的語句,而後執行if以後的後續語句。

if語句中的最後一條else語句用來處理全部條件均不成立的狀況,即當全部表達式的值均爲假時,執行最後一個else後的語句。若是全部條件均不成立時,不須要完成任何操做,則可省略else。

4)if語句嵌套

C語言容許if語句嵌套,if的內嵌語句能夠是另外一條三種形式之一的if語句。

如:在a>=b的條件下,判斷a,c中的最大值:

if (a>=b) if(a>=c) printf("max=%d\n",a); else printf("max=%d\n",c);

在if流程中嵌套了if…else流程。

使用if語句嵌套時,應注意if與else的配套關係,以避免發生二義性。

如:用if語句完成一個分段函數計算:

 

  -a    x<0
y= 0     x=0
  a     x>0

若是程序段爲:

 y=-a; if(x!=0) if(x>0) y=a; else y=0;

執行結果就時錯誤的,問題出在else和if的配對。C語言採用的是最鄰近配對原則,else老是與它最近的if配對,儘管形式上寫成了else與第一個if配對,但語法上else是與第二個if配對的,因此出現錯誤,這種狀況出現,可採用複合語句的方法來解決。

程序段改寫爲:

 y=-a; if(x!=0){ if(x>0) y=0; } else y=0;

採用複合語句,從語法上規定了程序段第3~5行已經是第一個if語句的一條完整的內嵌語句,是一個if流程,所以不能再與else子句配對,從而使得else與第一個if語句配對。

4.switch多路開關語句

通常形式爲:
switch(表達式) { case常量1:語句1; break; case常量2:語句2; break; …… case常量n:語句n; breakdefault:語句n+1; }

      其中,switch,case和default爲關鍵字。switch後的表達式能夠是整型或字符型表達式,但不能是關係表達式或邏輯表達式。常量1~n能夠是整數、字符或常量 表達式。

 

執行過程:計算swicth語句中的表達式的值,再依次與case後面的1~n個常量比較,當表達式的值與某個case後的常量相等時,則執行該case對應的語句;break語句能夠跳出switch結構。

若是n個常量都不等於switch中的表達式的值,則執行default後的語句。

每一個case後的語句能夠是單條語句或空語句,也能夠是多條語句構成的一個程序段。

break語句的做用是結束switch語句,使流程跳出switch結構。缺乏break語句不能實現多路分支。

5.for循環

通常形式:

for(表達式1;表達式2;表達式3)

       循環體

表達式1——通常爲賦值表達式,爲循環控制變量賦初值

 表達式2——通常爲關係表達式或邏輯表達式,爲控制循環結束的條件。

表達式3——通常爲賦值表達式,對循環控制變量進行修改(增量或減量)

循環體——能夠是單語句,也能夠是複合語句

6.while循環和do…while循環

1)while語句

while語句

通常形式:

while(表達式)

           循環體

2)do…while語句

通常形式爲:

do循環體while(表達式);

7.循環嵌套

 

1for(…) { … while(…) {…} …… } 2do { … for(…) {…} … }while3)while(…) { … do{ … }while(); … } 4for(…) { … for(…) {…} … }

 

 

 


 8.break,continue,goto語句

1)break語句

可用於switch語句中,使某個case子句執行完後,跳出switch結構,實現多路分支。

在for、while和do…while循環結構中,當須要循環在必定條件下提早終止時,break語句能夠跳轉出循環結構。

break語句提供了經過中間測試使循環結束的中間出口方法。

2)continue語句

continue語句只能用於循環結構,continue語句結束本次循環,直接進入本循環結構的下一次循環操做

3)goto語句

通常形式爲

goto標號;

標號:語句

標號使用標識符表達

標號表明的語句能夠是一個空語句

goto語句只能從循環嵌套內層轉向外層,反之則不行。

相關文章
相關標籤/搜索