🎯每日努力一点点,技术进步看得见
🏠专栏介绍:【C语言步行梯】专栏用于介绍C语言相关内容,每篇文章将通过图片+代码片段+网络相关题目的方式编写,欢迎订阅~~
文章目录
- 什么是语句?
- 引入分支语句(选择结构)
- if语句
- switch语句
什么是语句?
C语言由;
(分号)隔开的就是一条语句,举个例子↓↓↓
printf("这是一行语句");
int a = 10;//这也是一个语句
;//虽然只有一个分号,但这也是语句,这种语句称为空语句
引入分支语句(选择结构)
生活中,我们有很多需要选择的情况。例如:你想喝品牌的可乐?百事还是可口可乐?为了满足选择需求,C语言就有了分支(选择)结构。
if语句
在我们坐公交车的时候,如果我们刷的是学生卡,此时卡机就会叫一声“学生卡~”。C语言该怎么实现这样的情景呢?
那我们就得先来认识一下单分支语句了,它的结构是这样的↓↓↓
if()//括号内填判断条件
{//执行语句
}
以上面学生卡的例子来说,如果是学生卡则在频幕上打印“学生卡”,代码实现如下
if(isStudentCard)
{printf("学生卡~");
}
除了这种分支(选择)的场景,还有这么个场景:我去银行取钱,我的余额是100块,如果我取100,则会取钱成功;如果我取10000,则会取钱失败。
于是我们就有了双分支语句结构↓↓↓
if()//括号内填写判断条件
{//满足条件则执行这里
}
else
{//不满足条件则执行这里
}
上面的取钱场景可以转化为下面这个代码↓↓↓
//rest表示余额
//money表示要取的钱
if(money <= rest)
{//ATM吐钱
}
else
{//显示余额不足
}
关于if语句,还有最后这一种场景:我们考试的时候100-90分是优秀,89-70分是良好,69-60分是及格,小于60分是不及格。此时需要更多的分支,C语言就引入了多分支语句。它的格式如下↓↓↓
if()//这里填写条件1
{//满足条件1执行这里
}
else if()//这里填写条件2
{//满足条件2执行这里
}
else if()//这里填写条件3
{//满足条件3执行这里
}
else
{//上述条件都不满足,执行这里
}
对于上面按分数划分等级的场景,我们可以写出如下代码↓↓↓
if(score >= 90 && score <= 100)
{printf("优秀\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语句匹配,形成分支结构。
if(age >= 18)if( age >= 60)printf("长者")
elseprintf("我和age>=60的if语句匹配");
经过上面的学习,我们拿几道题来练练手,Let’s Go!【读者先自己写写,我们再一起对照对照】
练习1:编写程序判断一个数是否为奇数
#include <stdio.h>int main()
{int num = 0;scanf("%d", &num);if(num % 2 == 1){printf("是奇数\n");}else{printf("不是奇数\n");}return 0;
}
练习2:Jammingpro想喝蜜雪冰城,Jammingpro输入他带的钱的数量,你帮他判断一下他能不能买得起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的语句结构一定能够实现,但实现代码实在是太繁杂了。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子句后的整型、常量或者表达式进行匹配,如果匹配成功,则会执行对应case子句后面的代码;如果都无法匹配,则会执行default子句后面的代码。
★ps:上面case语句后面的break不可以省略。以day=6为例,它将和case 6相匹配,并打印"星期六",在遇到break语句时,将跳出整个switch语句。假如case 6子句下面没有break,则在打印完“星期六”之后,将会向后继续执行打印“星期日”的操作,直到遇到下一个break语句。
借助switch语句中,如果没有遇到break就会继续向后执行的特点,我们可以实现如下代码。这个代码中,day的数值表示星期,当输入1到5时,则会打印“工作日”;输入6到7,则会打印“休息日”;输入其他内容,则会打印“输入有误”。
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语句,那就我们来看一段代码,看看它的执行结果应该是什么【读者先想出结果,再一起对照一下】
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语句,将继续执行case 2中的内容。case 2中嵌套了switch语句,m和case 2自己想匹配,于是打印了”is “,因为内层case 2子句后面有break语句,将会跳出内层switch语句。外层switch的case 2后面没有break语句,它将继续执行default子句中的内容,打印出”handsome\n“。
🚩这篇文章结束了~~
如果文章中出现了错误,欢迎私信或留言。(๑•̀ㅂ•́)و✧
有任何疑问请评论或私信哦~~o( ̄▽ ̄)ブ