分支语句概述
分支语句的作用:
用于根据特定条件执行不同的代码块。它们控制程序的流程,允许开发者在不同的选项之间进行选择。
分支语句的使用使得程序更加灵活,可以适应不同的情况和需求。
分支语句的分类
if语句
if语句是最常用的分支语句之一。其基本语法如下:
只存在两种结果时
if (判断条件)
{
条件为真时需要进行的操作
}
else
{
不满足判断条件时要进行的操作
}
if的嵌套
if(表达式1)
{语句1;}
if(表达式2)
{语句2;}
if ......
if的多分支情况
if (表达式1)
{语句1;}
else if (表达式2)
{语句2;}
else
{语句3;}
else语句一般是和if语句连用的,也可以视情况而省略不写else语句。总结一下,有if语句,不一定有else语句;但是,有else语句,就一定要有与之搭配的if语句。
易错知识点
else和if的匹配问题
如果有多个 if 和 else ,可以记住这样⼀条规则, else 总是跟最接近的 if 匹配。
例如:
#include <stdio.h>
int main()
{
int a = 0;
int b = 2;
if(a == 1)
if(b == 2)
printf("hehe\n");
else
printf("haha\n");
return 0;
}
输出结果:什么都不输出
很多初学者,上来以判断 a 是 0,不等于 1 ,那就执⾏ else ⼦句,打印 haha,其实这样是错误的。把代码写的更规范些,加一下括号,这样就会清晰很多。如下:
#include <stdio.h>
int main()
{
int a = 0;
int b = 2;
if (a == 1)
{
if (b == 2)
printf("hehe\n");
else
printf("haha\n");
}
return 0;
}
或者如果我们希望else确实和第⼀个if匹配,可以这样修改代码:
#include <stdio.h>
int main()
{
int a = 0;
int b = 2;
if (a == 1)
{
if (b == 2)
printf("hehe\n");
}
else
{
printf("haha\n");
}
return 0;
}
输出结果:
这里提醒我们,一定要规范写代码,该缩进的缩进,该写括号的加上括号,这样可以使我们的代码的逻辑更加清晰,可读性更高。
switch语句
switch语句用于根据不同的条件执行不同的代码块。它通常用于替代多个if语句,使代码更简洁。switch语句的基本语法如下:
switch (expression_整形表达式)
{
case 整形常量表达式1:
语句1;
break;
case 整形常量表达式1:
语句2;
break;
default:
语句3;
break;
}
在switch语句中,switch后面必须要接上一个整形表达式,它用于匹配不同的case标签。如果expression的值与某个case标签的值相匹配,则执行相应的代码块。如果没有匹配的case标签,则执行default标签中的代码块。
易错知识点
switch语句中,遗漏break
switch语句中,只有搭配了break才能真正实现分支,程序在遇到break时才会跳出switch语句,如果没有break语句,则程序会继续往下执行。
例如:
7除以3本来余数是1,但是程序运⾏的结果多了⼀⾏“余数是2”的打印。这就是没有加break的原因。所以写switch语句时不要忘了break。
switch语句中,错误输入提醒, default
将输入的值不符合我们要求的情况放进default语句中,来保证能得到反馈。例如:
#include <stdio.h>
int main()
{
int day ;
scanf("%d", &day);
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("输入非法,请输入1-7的整数");
}
return 0;
}
输入0时,输出结果为:
条件运算符(三目运算符,含三个操作数)
条件运算符(也称为三目运算符)是C语言中另一种常用的分支语句。它用于在条件为真时返回一个值,否则返回另一个值。条件运算符的基本语法如下:
result = (condition) ? value1 : value2;
如果条件为真,则返回value1的值,否则返回value2的值。条件运算符通常用于简化if语句的代码。
例如:
int main()
{
int a;
int result;
scanf("%d",&a);
result = (1 == a) ? 2 : 3;
printf("%d", result);
return 0;
}
输入1,输出2:
输入除1以外的数,都输出3: