C语言分支相关知识详解(if、switch语句)


在C语言中主要采用两种语句实现分支结构,分别为if语句和switch语句

if语句

基本形式

if语句的基本形式如下

if (表达式)
	语句;

表达式执行结果为真(非0),则执行语句,表达式结果为假(0)则不执行语句

if else 语句

在实际运用中常用的形式如下

if(表达式)
{
	语句一;
	语句二;
}
else
{
	语句三;
	语句四;
}

表达式为执行语句一二,表达式为则执行语句三四
注意,如果需要执行多条语句就需要加上大括号代表一个代码块,只执行一条语句时则可以不加

if的嵌套

在 if else 语句中,else 可以与另外一个 if 连用来构成多重判断,形式如下

if (表达式一)
	语句一;
else if (表达式二)
	语句二;
else
	语句三;

其中,表达式一为真则执行语句一,表达式一为表达式二为则执行语句二,而表达式一与表达式二都为假时则执行语句三

注意,不论几重嵌套,if else 语句都执行其中的一条分支语句

switch语句

基本形式

switch 语句其实是一种特殊的 if else 语句,用来处理有多个结果的情况,其基本形式如下

switch(表达式)
{
	case value1:
	语句一;
	break;
	case value2:
	语句二;
	break;
	default:
	语句三;
	break;
}

对于如上代码,表达式的值是什么就执行相应的 case 分支语句,而如果没有相匹配的值就执行 default 分支语句

注意
1.switch 后面的表达式必须是整型表达式
2.case 后面的值必须是整型常量表达式
3.单个字符也可看做是一个整型,如:

char a = 0;
	scanf("%c", &a);
	switch (a)
	{
	case 'b':
		printf("haha\n");
		break;
	case 'c':
		printf("hehe\n");
		break;
	default:
		printf("输入有误!\n");
		break;

执行结果:
在这里插入图片描述

switch语句中的case和default的顺序问题

在switch语句中,各个case与default其实是没有顺序要求的,只要顺序满足实际需求就可以,不过我们习惯将default 放在最后处理

switch中的break

对于一个switch语句,我们还需要注意
1.case和后边的数字之间必须有空格
2.每⼀个 case语句中的代码执⾏完成后,需要加上 break,才能跳出这个switch语句

那么,如果不加break会发生什么呢?例:

char a = 0;
	scanf("%c", &a);
	switch (a)
	{
	case 'b':
		printf("haha\n");
		
	case 'c':
		printf("hehe\n");
		
	default:
		printf("输入有误!\n");
		break;

同样的代码,我们将前两个break去掉,观察结果如下:
在这里插入图片描述
发现,我们只输入了一个 ‘b’ ,但是将所有结果都打印了出来

其实,break 的作用就是跳出 switch 语句,在实际中我们如果仅需要’一一匹配’的情况下,那么就必须加上break以跳出语句

当然,可根据实际问题情况具体分析是否加break,有些问题场景可不加break,这里举一个例子:

//对于一个switch语句,要求输入 1-5 时表示工作日,6-7 时表示休息日
#include<stdio.h>

int main()
{
	int day = 0;
	scanf("%d", &day);//输入一个日期进行判断
	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");
	}
	return 0;
}

部分结果如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

以上即为C语言中分支相关内容知识

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值