目录
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、易错点
- 符号: %为取余符 \n为换行符 %d为占位符
- ==为相等运算符 与 =赋值运算符不要混淆
- 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、易错点
- switch后表达式必须为整形表达式
- case与values之间必须有空格 并且values必须是整形常量表达式
- 只有在switch语句中使用break才能跳出语句,否则会一直执行下去,但是break也不是一定要添加,需要根据实际情况决定。
3.3拓展switch语句中break的应用情况
下面链接博客针对switch语句中是否应用break语句做了详细介绍。