我們大家都知道,c語(yǔ)言是一門** 結(jié)構(gòu)化 **的程序設(shè)計(jì)語(yǔ)言,程序的運(yùn)行都是以某種結(jié)構(gòu)和順序?yàn)楣羌苋?zhí)行的,那么本期就向大家介紹一下c語(yǔ)言的幾種結(jié)構(gòu)。
本期主要介紹分支與循環(huán)語(yǔ)句
1.什么是語(yǔ)句
2.if語(yǔ)句
3.switch語(yǔ)句
- 什么是語(yǔ)句
c語(yǔ)言中用一個(gè)分號(hào) ;隔開(kāi)的就是一條語(yǔ)句。例如:
int main()
{
int a=0;//語(yǔ)句由分號(hào)隔開(kāi),一條語(yǔ)句由分號(hào)表示結(jié)束
printf ("%d\\n" , a);
; //這也是一種語(yǔ)句
return 0;
}
一個(gè)程序基本的組成單位就是語(yǔ)句,值得一提的是 即使一個(gè)語(yǔ)句中只有一個(gè)分號(hào)(如上所示),它也是一條正確的語(yǔ)句,我們后面會(huì)有特殊的用法。
- 分支語(yǔ)句
如上圖,我們?cè)?a href="http://m.xsypw.cn/v/tag/1315/" target="_blank">編程中常會(huì)遇到上述的結(jié)構(gòu),它們含有兩個(gè)或多個(gè)分支,如果想準(zhǔn)確表達(dá)上圖所表示的意思,我們就要使用分支語(yǔ)句,其中包含if語(yǔ)句和switch語(yǔ)句。
- lf語(yǔ)句
if語(yǔ)句的語(yǔ)法結(jié)構(gòu)
if(表達(dá)式){
?? 語(yǔ)句;
}
if(表達(dá)式){
??語(yǔ)句1;
}
else
{
??語(yǔ)句2;
}
//多分支
if(表達(dá)式1){
??語(yǔ)句1
}
else if(表達(dá)式2){
??語(yǔ)句2;
}
else {
??語(yǔ)句3;
}
以上三種結(jié)構(gòu)幾乎可用于一切的分支情況。
-
if語(yǔ)句如何執(zhí)行
對(duì)于這種結(jié)構(gòu)的分支語(yǔ)句來(lái)說(shuō):
if(表達(dá)式){
?? 語(yǔ)句;
}
只需要判斷表達(dá)式的值是否為真,若表達(dá)式為真則執(zhí)行語(yǔ)句,否則跳出分支語(yǔ)句。
如何判斷表達(dá)式是否為真?
表達(dá)式為零則為假,表達(dá)式為非零則為真
對(duì)于這種結(jié)構(gòu)的分支語(yǔ)句來(lái)說(shuō):
if(表達(dá)式){
??語(yǔ)句1;
}
else
{
??語(yǔ)句2;
}
只需要判斷表達(dá)式的值是否為真,若表達(dá)式為真則執(zhí)行語(yǔ)句1,否則執(zhí)行語(yǔ)句2。
對(duì)于這種結(jié)構(gòu)的分支語(yǔ)句來(lái)說(shuō):
if(表達(dá)式1){
??語(yǔ)句1
}
else if(表達(dá)式2){
??語(yǔ)句2;
}
else {
??語(yǔ)句3;
}
首先判斷表達(dá)式1的值是否為真,如果為真則執(zhí)行語(yǔ)句1,否則判斷表達(dá)式2的值是否為真,若表達(dá)式2的值為真則執(zhí)語(yǔ)句2,否則執(zhí)行語(yǔ)句3。
值得一提的是,if自動(dòng)匹配之后的一條語(yǔ)句,但若超過(guò)兩條,則需要用”{}“括起來(lái)。如下圖所示,程序返回了”4“,驗(yàn)證了我們的說(shuō)法。
#include
int test(int a)
{
if (a)
return 2;//若if包含下一條語(yǔ)句,程序會(huì)打印4,若包含兩條以上,程序會(huì)打印2
return 4;
}
int main()
{
int a = 1;
int b=test(a);
printf("%d\\n", b);
return 0;
}
- switch語(yǔ)句
switch也是一種分支語(yǔ)句。常常用于多分支的情況,例如,下面這種情景:
輸入1,輸出星期一
輸入2,輸出星期二
輸入3,輸出星期三
輸入4,輸出星期四
輸入5,輸出星期五
輸入6,輸出星期六
輸入7,輸出星期日
switch語(yǔ)句的語(yǔ)法結(jié)構(gòu)
switch(整型表達(dá)式)
{
??case 整型表達(dá)式值1:
????語(yǔ)句1;
??case 整型表達(dá)式值2:
????語(yǔ)句2;
??case 整型表達(dá)式值3:
????語(yǔ)句3;
??case 整型表達(dá)式值4:
????語(yǔ)句4;
…
??default :
????語(yǔ)句5;
}
-
switch語(yǔ)句如何執(zhí)行
switch語(yǔ)句首先判斷整型表達(dá)式的值,當(dāng)整型表達(dá)式與某個(gè)case后的值i相等時(shí),則執(zhí)行語(yǔ)句i至最后一條語(yǔ)句,當(dāng)整型表達(dá)式的值與任意一個(gè)case后的值均不相等,則執(zhí)行default語(yǔ)句至最后一條語(yǔ)句。
-
switch中的break
switch語(yǔ)句只能選擇從某條語(yǔ)句開(kāi)始執(zhí)行,并不能選擇只執(zhí)行某條case后的語(yǔ)句。也就是說(shuō),switch語(yǔ)句在開(kāi)始執(zhí)行后,除非遇到break或return,否則語(yǔ)句會(huì)逐個(gè)執(zhí)行接下來(lái)的case語(yǔ)句直到語(yǔ)句結(jié)束。這里可以借用break語(yǔ)句來(lái)實(shí)現(xiàn)多分支。
那么上面打印星期幾的問(wèn)題就可用以下代碼來(lái)解決:
# include
int main()
{
int day;
printf("請(qǐng)輸入day的值\\n");
scanf_s("%d", &day);
switch (day) {
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("星期日\(chéng)\n");break;
}
}
- switch語(yǔ)句的特殊應(yīng)用場(chǎng)景
那么如果我們的需求變成了”輸入15,輸出工作日,輸入67,輸出休息日“的話,我們可以通過(guò)調(diào)整輸出語(yǔ)句和break 語(yǔ)句的位置來(lái)實(shí)現(xiàn)。如下所示
#include
#include
#include
int main()
{
int day;
printf("請(qǐng)輸入day的值\\n");
scanf_s("%d", &day);
switch (day) {
case 1:
case 2:
case 3:
case 4:
case 5:printf("工作日\(chéng)\n");break;
case 6:
case 7:printf("休息日\(chéng)\n");break;
}
}
-
C語(yǔ)言
+關(guān)注
關(guān)注
180文章
7630瀏覽量
140511 -
結(jié)構(gòu)化
+關(guān)注
關(guān)注
0文章
27瀏覽量
10391 -
程序設(shè)計(jì)語(yǔ)言
+關(guān)注
關(guān)注
0文章
3瀏覽量
6688
發(fā)布評(píng)論請(qǐng)先 登錄
C語(yǔ)言中for循環(huán)的用法和應(yīng)用 C語(yǔ)言中for循環(huán)與while循環(huán)的區(qū)別

C語(yǔ)言循環(huán)結(jié)構(gòu)的使用方法

C語(yǔ)言for循環(huán)的用法和注意事項(xiàng)

深入理解C語(yǔ)言:C語(yǔ)言循環(huán)控制

C語(yǔ)言入門教程-if語(yǔ)句和while循環(huán)
C++語(yǔ)言基礎(chǔ)講解視頻do while循環(huán)語(yǔ)句
C++語(yǔ)言基礎(chǔ)講解視頻Switch分支條件判斷語(yǔ)句
C語(yǔ)言教程之循環(huán)顯示隨機(jī)數(shù)問(wèn)題
C語(yǔ)言教程之使用循環(huán)結(jié)構(gòu)設(shè)計(jì)C語(yǔ)言程序的資料說(shuō)明

C語(yǔ)言的3種循環(huán)結(jié)構(gòu)分析

從零開(kāi)始跟我學(xué)C語(yǔ)言之分支結(jié)構(gòu)(下)
C語(yǔ)言的循環(huán)與分支-2

C語(yǔ)言基礎(chǔ)篇--選擇/順序/循環(huán)結(jié)構(gòu)

評(píng)論