目录
问题:什么是分支语句?
分支语句属于控制语句,用于控制程序的执行过程,以实现程序的各种结构方式,它们由特定的语句定义符组成
1.if语句
1.1 If 单分支语句
1.2 If 双分支语句:If ...else语句
语法结构:
if(条件表达式) {
语句1 //条件成立时执行
}else
{
语句2 //条件不成立时执行
}
1.3 If多分支条件语句
语法结构:
if(条件表达式){ 语句1
}else if(条件表达式)
{ 语句2
}else
{ 语句3
}
例:
#include<stdio.h>
int main()
{
int score;
scanf("%d",&score);
if(score<0||score>100) // "||"表 或者
printf("成绩输入有误!\n");
else if(score<60)
printf("成绩不合格!\n");
else if(score>60 && score<80) // "&&"表 并且
printf("成绩合格!\n");
else if(score<90)
printf("良好!\n");
else
printf("优秀!\n");
return 0;
}
实验结果如下:
说明:
- if 语句中的“表达式”一般为关系表达式或逻辑表达式,但不限于这两种表达式
- else子句不能单独使用,必须是if语句的一部分,与if配对使用,else总是与离它最近的未配对的if使用
- if 默认控制一条语句,如果条件成立,要执行多条语句,应该使用代码块{}。
2. switch语句![](https://img-blog.csdnimg.cn/4670332f36ce41f5a677bc2d4778eb37.png)
说明:
在程序设计过程中,需要适时的选择多分支 if 语句和 switch 语句。
(1)if...else...是需要进行多级判断时的选择。 switch 简化了多级判断,语句只能判断“相等”的逻辑关系,即 switch 后表达式的值是否和 case 常量值相等;
(2) switch 后的表达式不能描述某范围的数据,表达式的值是一个确定的整型或字符型数据
switch语句实现学生成绩等级划分
#include <stdio.h>
int main()
{
int a;
printf("input the number: ");
scanf("%d",&a);
switch(a)
{
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("error\n");
}
}
运行结果如下:
3. 三元运算符(? : 运算符)
语句格式:
条件 ? val1 : val2;
//表达式的值,要看条件是true还是false
//如果条件是true,那么表达式的值就是val1
//如果条件是false,那么表达式的值就是val2
例:
#include<stdio.h>
int main()
{
int num;
printf("输入一个数字 : ");
scanf("%d",&num);
(num%2==0)?printf("偶数"):printf("奇数");
}
运行结果如下: