【C语言步行梯】分支语句if...else、switch详谈

在这里插入图片描述

🎯每日努力一点点,技术进步看得见
🏠专栏介绍:【C语言步行梯】专栏用于介绍C语言相关内容,每篇文章将通过图片+代码片段+网络相关题目的方式编写,欢迎订阅~~


什么是语句?

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("长者")
else
	printf("我和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( ̄▽ ̄)ブ

相关推荐

  1. c语言分支语句

    2024-03-15 21:32:01       32 阅读
  2. C语言分支循环语句

    2024-03-15 21:32:01       33 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-15 21:32:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-15 21:32:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-15 21:32:01       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-15 21:32:01       20 阅读

热门阅读

  1. 深入理解DHCP服务:网络地址的自动化分配

    2024-03-15 21:32:01       20 阅读
  2. Python yield from

    2024-03-15 21:32:01       15 阅读
  3. Python中的pass语句详解

    2024-03-15 21:32:01       21 阅读
  4. 使用Python进行图片格式转化/分辨率转化

    2024-03-15 21:32:01       20 阅读
  5. Python注册用法

    2024-03-15 21:32:01       20 阅读
  6. 计算机网络基础

    2024-03-15 21:32:01       14 阅读
  7. Mysql中的engine

    2024-03-15 21:32:01       17 阅读
  8. Oracal序列冲突问题解决

    2024-03-15 21:32:01       20 阅读
  9. 一文解读ISO26262安全标准:功能安全管理

    2024-03-15 21:32:01       21 阅读
  10. 用try...catch进行判断

    2024-03-15 21:32:01       17 阅读