??每日努力一點點,技術進步看得見
??專欄介紹:【C語言步行梯】專欄用于介紹C語言相關內(nèi)容,每篇文章將通過圖片+代碼片段+網(wǎng)絡相關題目的方式編寫,歡迎訂閱~~
什么是語句?
C語言由;
(分號)隔開的就是一條語句,舉個例子↓↓↓
printf("這是一行語句");
int a = 10;//這也是一個語句
;//雖然只有一個分號,但這也是語句,這種語句稱為空語句
引入分支語句(選擇結(jié)構(gòu))
生活中,我們有很多需要選擇的情況。例如:你想喝品牌的可樂?百事還是可口可樂?為了滿足選擇需求,C語言就有了分支(選擇)結(jié)構(gòu)。
if語句
在我們坐公交車的時候,如果我們刷的是學生卡,此時卡機就會叫一聲“學生卡~”。C語言該怎么實現(xiàn)這樣的情景呢?
那我們就得先來認識一下單分支語句了,它的結(jié)構(gòu)是這樣的↓↓↓
if()//括號內(nèi)填判斷條件
{
//執(zhí)行語句
}
以上面學生卡的例子來說,如果是學生卡則在頻幕上打印“學生卡”,代碼實現(xiàn)如下
if(isStudentCard)
{
printf("學生卡~");
}
除了這種分支(選擇)的場景,還有這么個場景:我去銀行取錢,我的余額是100塊,如果我取100,則會取錢成功;如果我取10000,則會取錢失敗。
于是我們就有了雙分支語句結(jié)構(gòu)↓↓↓
if()//括號內(nèi)填寫判斷條件
{
//滿足條件則執(zhí)行這里
}
else
{
//不滿足條件則執(zhí)行這里
}
上面的取錢場景可以轉(zhuǎn)化為下面這個代碼↓↓↓
//rest表示余額
//money表示要取的錢
if(money <= rest)
{
//ATM吐錢
}
else
{
//顯示余額不足
}
關于if語句,還有最后這一種場景:我們考試的時候100-90分是優(yōu)秀,89-70分是良好,69-60分是及格,小于60分是不及格。此時需要更多的分支,C語言就引入了多分支語句。它的格式如下↓↓↓
if()//這里填寫條件1
{
//滿足條件1執(zhí)行這里
}
else if()//這里填寫條件2
{
//滿足條件2執(zhí)行這里
}
else if()//這里填寫條件3
{
//滿足條件3執(zhí)行這里
}
else
{
//上述條件都不滿足,執(zhí)行這里
}
對于上面按分數(shù)劃分等級的場景,我們可以寫出如下代碼↓↓↓
if(score >= 90 && score <= 100)
{
printf("優(yōu)秀\n");
}
else if(score >= 70 && score < 90)
{
printf("良好\n");
}
else if(score >= 60 && score < 70)
{
printf("及格\n");
}
else
{
printf("不及格\n");
}
下面給出一些小tips:
★ps:if…else if…else多分支語句中,可以有多個else if。
★ps:在填寫括號中的條件表達式時,如果表達式的值非0,則表示真;如果表達式的值為0,則表示假。
★ps:if、else if、else的后面最多只能接1條語句,如果要接多條語句,需要使用大括號{}將所有語句括起來。
★ps:if…else…的匹配滿足就近原則。例如下方代碼,else與離它最近的if語句匹配,即與age>=60
所在的if語句匹配,形成分支結(jié)構(gòu)。
if(age >= 18)
if( age >= 60)
printf("長者")
else
printf("我和age>=60的if語句匹配");
經(jīng)過上面的學習,我們拿幾道題來練練手,Let’s Go!【讀者先自己寫寫,我們再一起對照對照】
練習1:編寫程序判斷一個數(shù)是否為奇數(shù)
#include <stdio.h>
int main()
{
int num = 0;
scanf("%d", &num);
if(num % 2 == 1)
{
printf("是奇數(shù)\n");
}
else
{
printf("不是奇數(shù)\n");
}
return 0;
}
練習2:Jammingpro想喝蜜雪冰城,Jammingpro輸入他帶的錢的數(shù)量,你幫他判斷一下他能不能買得起5塊錢的檸檬水
#include <stdio.h>
int main()
{
int money = 0;
scanf("%d", &money);
if(money >= 5)
{
printf("能買得起\n");
}
else
{
printf("買不起\n");
}
return 0;
}
switch語句
如果我們輸入1表示星期一,輸入2表示星期二,以此類推。如果使用if…else if…else的語句結(jié)構(gòu)一定能夠?qū)崿F(xiàn),但實現(xiàn)代碼實在是太繁雜了。C語言中的switch語句就派上用場了,我們來看看它怎么判斷星期↓↓↓
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;
default:
printf("輸入有誤\n");
break;
}
其中switch后面的括號中可以填表達式,它將會和case子句后的整型、常量或者表達式進行匹配,如果匹配成功,則會執(zhí)行對應case子句后面的代碼;如果都無法匹配,則會執(zhí)行default子句后面的代碼。
★ps:上面case語句后面的break不可以省略。以day=6為例,它將和case 6相匹配,并打印"星期六",在遇到break語句時,將跳出整個switch語句。假如case 6子句下面沒有break,則在打印完“星期六”之后,將會向后繼續(xù)執(zhí)行打印“星期日”的操作,直到遇到下一個break語句。
借助switch語句中,如果沒有遇到break就會繼續(xù)向后執(zhí)行的特點,我們可以實現(xiàn)如下代碼。這個代碼中,day的數(shù)值表示星期,當輸入1到5時,則會打印“工作日”;輸入6到7,則會打印“休息日”;輸入其他內(nèi)容,則會打印“輸入有誤”。
switch(day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("工作日\n");
break;
case 6:
case 7:
printf("休息日\n");
break;
default:
printf("輸入有誤\n");
break;
}
★ps:default子句可以放在整個switch語句中的任意位置,不一定要放在最后面。
學完switch語句,那就我們來看一段代碼,看看它的執(zhí)行結(jié)果應該是什么【讀者先想出結(jié)果,再一起對照一下】
int main()
{
int n = 1;
int m = 2;
switch(n)
{
case 1:
printf("Jammingpro ");
case 2:
switch(m)
{
case 1:
printf("ccc ");
case 2:
printf("is ");
break;
case 3:
printf("strong!\n");
break;
default:
printf("nice\n");
break;
}
default:
printf("handsome!\n");
break;
}
return 0;
}
揭曉答案的時刻:“Jammingpro is handsome”。
解析:外層的switch語句中,n和case 1自己相匹配,打印完“Jammingpro ”后,由于其后面沒有break語句,將繼續(xù)執(zhí)行case 2中的內(nèi)容。case 2中嵌套了switch語句,m和case 2自己想匹配,于是打印了”is “,因為內(nèi)層case 2子句后面有break語句,將會跳出內(nèi)層switch語句。外層switch的case 2后面沒有break語句,它將繼續(xù)執(zhí)行default子句中的內(nèi)容,打印出”handsome\n“。文章來源:http://www.zghlxwxcb.cn/news/detail-840472.html
??這篇文章結(jié)束了~~
如果文章中出現(xiàn)了錯誤,歡迎私信或留言。(??????)??
有任何疑問請評論或私信哦~~o( ̄▽ ̄)ブ文章來源地址http://www.zghlxwxcb.cn/news/detail-840472.html
到了這里,關于【C語言步行梯】分支語句if...else、switch詳談的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!