C语言分支结构 if与switch之间的碰撞!

目录

1、if语句

1、语法形式

2、例题——代码实现与解析      

3、易错点

3.3  拓展 else悬空问题理解

 2、switch语句

1、语法形式

2、例题——代码实现与解析      

3、易错点

3.3拓展switch语句中break的应用情况


1、if语句

1、语法形式

        当分支中包含多条语句时 ,if的语法形式如下:

if(表达式1)
    语句1
else if(表达式2)
    语句2
else
    语句3

代码解读:

  • 表达式1成立(为真),则执行语句1,执行后退出;
  • 若表达式1不成立,则跳过语句1。判断表达式2是否成立,若成立,则执行语句2,执行后退出;
  • 若表达式1与表达式2均不成立,执行语句3后退出。

2、例题——代码实现与解析      

        为了更好地理解,下面展示一道经典例题,题目为:

        输入任意一个整数值,计算除三之后的余数。

思路分析:一个数除三的余数有三种可能,分别为0、1、2,所以我们需要三条分支语句来实现.

        如果用if语句实现如下:

#include<stdio.h>
int main()
{
	int a;
	scanf("%d", &a);
	if (a % 3 == 0)//相等运算符
		printf("%d除三余数为0\n", a);
	else if (a % 3 == 1)
		printf("%d除三余数为1\n", a);
	else
		printf("%d除三余数为2\n",a);
return 0;
}

运行结果为,输入3,输出3除三余数为0。

3、易错点

  1. 符号:   %为取余符     \n为换行符   %d为占位符
  2. ==为相等运算符   与   =赋值运算符不要混淆
  3. else后无表达式,并且如果出现多个if与else ,else悬空,else总是与相近的if匹配  
3.3  拓展 else悬空问题理解

下面链接博客针对多个else与if匹配问题进行了详细介绍。

http://t.csdn.cn/kwgTZhttp://t.csdn.cn/kwgTZ


 2、switch语句

1、语法形式

        除if语句,switch语句也可以实现分支效果,适用于判断条件有多种结果的情况,它的语法形式如下。

switch(表达式){
    case values1: 
                语句 
    case values2: 
                语句
    default:    
                语句   
}

代码解读:

  • case后的values1、2为表达式的不同结果
  • 所以上述代码中,根据表达式的不同值,执行相应的case语句,如果找不到对应的值,就执行defalut分支

2、例题——代码实现与解析      

为与if语句进行对比我们用相同的题目来进行实现(输入任意一个整数值,计算除三之后的余数

#include<stdio.h>
int main()
{
	int a = 0;
	scanf("%d", &a);
	switch(a % 3)
	{
		case 0:
			printf("%d除三余数为0", a);
			break;//用于跳出switch语句,如果不加,代码会将继续执行下去
		case 1:
			printf("%d除三余数为1", a);
			break;
		case 2:
			printf("%d除三余数为2", a);
			break;
	}
	return 0;
}

运行结果为,输入3,输出3除三余数为0。

3、易错点

  1. switch后表达式必须为整形表达式
  2. case与values之间必须有空格 并且values必须是整形常量表达式
  3. 只有在switch语句中使用break才能跳出语句,否则会一直执行下去,但是break也不是一定要添加,需要根据实际情况决定。
3.3拓展switch语句中break的应用情况

下面链接博客针对switch语句中是否应用break语句做了详细介绍。

http://t.csdn.cn/AeVmYhttp://t.csdn.cn/AeVmY

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值