C語言是結(jié)構(gòu)化的編程語言。C語言對生活中的事情進行抽象,總結(jié)為順序、判斷、循環(huán)關(guān)系。
概述:
判斷(分支)語句:
循環(huán)語句:
go to
1.什么是語句C語言的語句可以分為一下幾類:
本次介紹的是控制語句。
控制語句用于控制程序的執(zhí)行流程,以實現(xiàn)程序的各種結(jié)構(gòu)方式(C語言有三種結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu))
可以分為三類:
下面我們將逐一介紹
2.分支語句(選擇結(jié)構(gòu)) 2.1 if語句在你面前有兩個選擇或者多個選擇時。example:周一、三、五選擇吃火鍋,二四六選擇吃蓋飯,周日隨緣。那么這個例子就需要進行選擇,在C語言中可以使用if語句實現(xiàn)。
//語法結(jié)構(gòu)
//單個if
if (表達(dá)式)
語句;
//if與else
if (表達(dá)式)
語句;
else
語句二;
//多個選擇時,可以用else if
if (表達(dá)式)
語句一;
else if (表達(dá)式)
語句二;
else
語句三;
代碼演示:
//one
#includeint main()
{int age = 0;
scanf("%d", &age);
if (age< 18)
{printf("未成年人\n");
printf("禁止吸煙\n");
}
return 0;
}
//two
#includeint main()
{int age = 0;
scanf("%d",&age);
if (age<18)
printf("未成年");
else
printf("已成年");
return 0;
}
//three
#includeint main()
{
int age = 0;
scanf("%d",&age);
if (age< 18)
printf("未成年");
else if (age>=18 && age<=30)
printf("青年");
else if (age>30 && age<=50)
printf("中年");
else
printf("老年");
return 0;
}
以上年齡劃分僅為演示代碼。
總結(jié):
如果條件成立,要執(zhí)行多條語句,要使用代碼塊,上面代碼 one 中就是使用了代碼塊。一對 { } 就是一個代碼塊。
#includeint main()
{if(表達(dá)式)
{語句列表1;
}
else
{語句列表2;
}
return 0;
}
2.1.1 懸空else看以下代碼:
#includeint main()
{
int a = 0;
int b = 2;
if (a==1)
if (b==1)
printf("I am so happy today");
else
printf("I am so sad today");
return 0;
}
那么上面的代碼輸出是什么呢?
答案是沒有輸出。因為 else 是與最近的 if 配套的,不能只看縮進,else 與 (b==1) 這層 if 搭配。由于判斷 a=1 的 if 條件已經(jīng)不成立了,所以根本不會運行 表達(dá)式一后面的執(zhí)行語句。
改正
//適當(dāng)?shù)氖褂?{ } 可以是代碼的邏輯更清晰
//要有良好的寫代碼的習(xí)慣和讓人舒服的風(fēng)格
#includeint main()
{
int a = 0;
int b = 2;
if (a == 1)
{
if (b == 2)
printf("I am so happy today");
else
printf("I am so sad today");
}
return 0;
}
2.1.2 if風(fēng)格對比//代碼1
if (condition)
{
return x;
}
return y;
//代碼2
if (condition)
{
return x;
}
else
{
return y;
}
其實上面兩個代碼的作用是一樣的,代碼二邏輯更為清晰。像我一樣的初學(xué)者,建議代碼二。
//代碼三
int main()
{
int num = 1;
if (5 == num)
{
printf("I am happy");
}
return 0;
}
if 的判斷語句這樣寫的話,如果出現(xiàn)少些一個等號這樣的錯誤,會直接報錯導(dǎo)致程序運行不了,防止條件判斷語句變?yōu)?賦值語句,程序能運行但是有 bug。
2.1.3小練習(xí)//判斷一個數(shù)是否為奇數(shù),是的話就輸出。
int main()
{
int num = 0;
scanf("%d",&num);
if (num %2 == 1)
printf("%d\n",num);
return 0;
}
//打印0~100之間的奇數(shù)
//這里會用到循環(huán),主要看if
int main()
{
int main()
{
int i = 0;
while (i<= 100)
{
if (i % 2 == 1)
{
printf("%d\n",i);
}
i++;
}
return 0;
}
2.2 switch語句switch語句也是分支語句的一種。常常用于多分支的結(jié)構(gòu)。
比如:按照輸入的數(shù)字輸出對應(yīng)的星期幾,那么我們也可以用 7個 if 語句判斷實現(xiàn)。但是代碼冗雜,這是哦我們可以使用 switch 語句。
switch (整形表達(dá)式)
{語句項;
}
語句項是什么?
//語句項是一些case語句
case 整型常量表達(dá)式:
語句;
通過代碼來看一下:
#includeint main()
{
int day = 0;
scanf("%d",&day);
switch(day)
{
case 1:
printf("星期一\n");
case 2:
printf("星期二\n");
case 3:
printf("星期三\n");
case 4:
printf("星期四\n");
case 5:
printf("星期五\n");
case 6:
printf("星期六\n");
case 7:
printf("星期天\n");
}
return 0;
}
那么結(jié)果是什么呢?
如果輸入6,會發(fā)現(xiàn)輸出 星期六 星期天。
why?
是因switch語句的執(zhí)行順序是判斷成功自上而下一次執(zhí)行。也就是說輸入 6 的時候。case 6 成立輸出星期六,但是沒有終止,因此會輸出星期天。
以上情況可以用break解決
#includeint main()
{
int day = 0;
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("星期天\n");
break;
}
return 0;
}
那么如果我們現(xiàn)在要求:輸入1~5輸出“工作日”,輸入6或7輸出“休息日”。
代碼:
int main()
{
int day = 0;
scanf("%d",&day);
switch (day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("工作日");
break;
case 6:
case 7:
printf("休息日");
break;
}
return ;
}
break語句 的實際效果是把語句列表劃分為不同的分支部分。
2.2.x default子句如果我們輸入的條件與case都不一致怎么辦?
答:使用default子句,當(dāng)case子句的條件都不滿足的時候,便會執(zhí)行 default 子句。
#includeint main()
{
int n = 1;
int m = 2;
switch (n)
{
case 1:
m++;
case 2:
n++;
case 3:
switch (n)
{//switch允許嵌套使用
case 1:
n++;
case 2:
m++;
n++;
break;
}
case 4:
m++;
break;
default:
break;
}
printf("m = %d, n = %d\n", m, n);
return 0;
}
//輸出
m = 5 n = 3
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
當(dāng)前名稱:C語言分支語句-總結(jié)筆記-創(chuàng)新互聯(lián)
網(wǎng)址分享:http://chinadenli.net/article40/ddihho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、微信公眾號、網(wǎng)頁設(shè)計公司、網(wǎng)站排名、做網(wǎng)站、電子商務(wù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容