目錄
1.分支語句和循環語句
什麼是C語言語句?
1. 表達式語句
2.标簽語句
3. 循環語句
4. 複合語句
5. 跳轉語句
6. 分支語句(選擇結構)
1. if 語句
3.while語句
循環語句
for 循環
for 循環的一般形式為:
do...while 循環
1.分支語句和循環語句
本章學習重點分支語句和循環語句的使用
分支語句循環語句
- if
- Switch
goto語句
- while
- for
- do while
什麼是C語言語句?
c語言中由一個;隔開的叫一條語句
C程式的執行部分是由語句組成的。 程式的功能也是由執行語句實作的。
從程式流程的角度來看,程式可以分為三種基本結構, 即順序結構、分支(選擇)結構、循環結構。
C語句可分為以下五類:
- 表達式語句
- 标簽語句
- 循環語句
- 複合語句
- 跳轉語句
- 分支語句(選擇結構)
- 空語句
下面分别作詳細說明:
1. 表達式語句
表達式語句由表達式加上分号“;”組成。
其一般形式為:表達式;執行表達式語句就是計算表達式的值和執行副作用。
例如: x=y+z; a=520;指派語句;
y+z;加法運算語句,但計算結果不能保留,無實際意義;
i++; 自增1語句,i值增1。
i++; 是先運算i後再加1。
++i; 是先把i值增1後運算。
包括空語句,函數調用語句在内都屬于表達式語句。
2.标簽語句
标簽語句有3種:
标簽名:語句
case 常量表達式:語句
default:語句
說明:其中case語句和default語句隻出現于switch語句中。
注意,同一個switch中case後的表達式隻能出現一次
switch(exp)
{
case 2:;
case 1+1:;
}
//ERROR
标簽名:語句用于goto,作用範圍是函數内部,無法跨函數,并且需要保證同函數内部的标簽名唯一。
3. 循環語句
循環語句有4種,分别是
while ( expression ) statement
do statement while ( expression ) ;
for ( expression(opt) ; expression(opt) ; expression(opt) ) statement
for ( declaration expression(opt) ; expression(opt) ) statement
循環語句用于實作程式的循環流程。
4. 複合語句
用括号{}括起來組成的一個語句稱複合語句。 在程式中應把複合語句看成是單條語句,而不是多條語句,例如
{
x=y+z;
a=b+c;
printf(“%d%d”,x,a);
}
是一條複合語句。
5. 跳轉語句
跳轉語句有4種,分别是
goto 标簽 ;
continue ;
break ;
return 表達式(可選) ;
跳轉語句控制程式跳轉到另一處執行。
6. 分支語句(選擇結構)
選擇語句有3種,分别是
if ( expression ) statement
if ( expression ) statement else statement
switch ( expression ) statement
1. if 語句
文法結構(3種):
if (表達式)
語句;
if(表達式)
語句1;
else
語句2;
//多分支
if(表達式1)
語句1;
else if(表達式2)
語句2;
else
語句3;
代碼示例:
#include"stdio.h"
int main()
{
int age = 20;
if (age < 18)
printf("未成年\n");
else if (age >= 18 && age < 28)
printf("青年\n");
else if (age >= 28 && age < 50)
printf("壯年\n");
else
printf("老年\n");
/*if (age >= 18)
printf("成年");
else
printf("未成年");*/
return 0;
}
注:C語言中表示真假”
0表示假,非0表示真
如果條件成立,要執行多條語句,使用代碼塊
一對{}就是一個代碼塊
#include"stdio.h"
int main()
{
int main()
{
if (表達式)
{
語句清單1;
}
else
{
語句清單2;
}
return 0;
}
代碼示例:
int week [] = { 1,2,3 };
scanf_s(" %d\n",&week);
if (week == 0)
{
printf("好好學習\n");
printf("完成作業\n");
}
else if (week == 1)
{
printf("出門鍛煉\n");
printf("強身健體\n");
}
else
{
printf("吃喝玩樂\n");
printf("風花雪月\n");
}
2. Switch語句
Switch語句也是一種分支語句,常常用于多分支的情況
比如:
輸入1, 輸出星期一
輸入2, 輸出星期二
輸入3, 輸出星期三
輸入4, 輸出星期四
輸入5, 輸出星期五
輸入6, 輸出星期六
輸入7, 輸出星期日
#include"stdio.h"
int main()
{
int week=0;
scanf_s(" % d", &week);
switch (week)
{
case 1:
printf("星期一\n");
break;
case 2:
printf("星期二\n");
break;
case 3:
printf("星期三\n");
break;
case 4:
printf("星期四\n");
break;
case 5:
printf("星期五\n");
break;
case 6:
printf("星期六\n");
break;
case 7:
printf("星期日\n");
break;
default:
printf("輸入有誤");
break;
}
return 0;
}
case 整形常量表達式:
語句;
3.while語句
while語句的一般形式為:
while(表達式) 語句
其中表達式是循環條件,語句為循環體。
while語句的語義是:計算表達式的值,當值為真(非0)時, 執行循環體語句。其執行過程可用下圖表示。
用while語句計算從1加到100的值。用傳統流程圖和N-S結構流程圖表示算法,見圖:
#include <stdio.h>
int main(void){
int i,sum=0;
i=1;
while(i<=100){
sum=sum+i;
i++;
}
printf("%d\n",sum);
return 0;
}
總結:break在while循環中的作用
循環中隻要遇到break,就停止後期所有的循環,直接終止循環
continue在while循環中的作用
continue就是終止本次循環也就是說本次continue後邊的代碼不會再執行,而是直接跳轉到while語句的判斷部分,進行下一次循環的入口判斷
循環語句
for 循環
和 while 一樣,for 循環也是一個頂部驅動的循環,但是它包含了更多的循環邏輯,如下所示:
for ([表達式1];[表達式2];[表達式3])
語句
在一個典型的 for 循環中,在循環體頂部,下述三個動作需要執行:
(1) 表達式 1:初始化
隻計算一次。在計算控制表達式之前,先計算一次表達式 1,以進行必要的初始化,後面不再計算它。
(2) 表達式 2:控制表達式
每輪循環前都要計算控制表達式,以判斷是否需要繼續本輪循環。當控制表達式的結果為 false,結束循環。
(3) 表達式 3:調節器
調節器(例如計數器自增)在每輪循環結束後且表達式 2 計算前執行。即,在運作了調節器後,執行表達式 2,以進行判斷。
#include <stdio.h>
int main(){
int i, sum=0;
i = 1; //語句①
while(i<=100 /*語句②*/ ){
sum+=i;
i++; //語句③
}
printf("%d\n",sum);
return 0;
}
for 循環的一般形式為:
for(表達式1; 表達式2; 表達式3){
語句塊
}
它的運作過程為:
1) 先執行“表達式1”。
2) 再執行“表達式2”,如果它的值為真(非0),則執行循環體,否則結束循環。
3) 執行完循環體後再執行“表達式3”。
4) 重複執行步驟 2) 和 3),直到“表達式2”的值為假,就結束循環。
上面的步驟中,2) 和 3) 是一次循環,會重複執行,for 語句的主要作用就是不斷執行步驟 2) 和 3)。
“表達式1”僅在第一次循環時執行,以後都不會再執行,可以認為這是一個初始化語句。“表達式2”一般是一個關系表達式,決定了是否還要繼續下次循環,稱為“循環條件”。“表達式3”很多情況下是一個帶有自增或自減操作的表達式,以使循環條件逐漸變得“不成立”。
for循環的執行過程可用下圖表示:
do...while 循環
do...while 循環是一種底部驅動的循環:
do 語句 while (表達式);
在控制表達式被第一次計算之前,循環體語句會首先被執行一次。與 while 和 for 循環不同,do...while 循環會確定循環體語句至少執行一次。如果控制表達式的值為 true,那麼另一次循環就會繼續;如果是 false,則循環結束。
do-while語句的一般形式為:
do
語句
while(表達式);
這個循環與while循環的不同在于:它先執行循環中的語句,然後再判斷表達式是否為真,如果為真則繼續循環;如果為假,則終止循環。是以,do-while循環至少要執行一次循環語句。其執行過程可用下圖表示。