众所周知,C语言是结构化的编程设计语言,它可以实现顺序结构、选择结构、循环结构这三种结构。所以,本人在此总结了一些C语言的分支语句,以便大家来了解C语言关于选择结构的知识。
其实,我们可以使⽤ if 、 switch 实现分⽀(选择)结构,使⽤ for 、 while 、 do while 实现循环结构。
例如:一家公司的基础月工资为5000,若员工业绩不小于90分,则加薪1000,求员工评分与工资的关系。
代码如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include
int main()
{
int score = 0;
while (scanf("%d", &score) != EOF)
{
int wage = 5000;
if (score >=90)
{
wage += 1000;
}
printf("工资为%d元\n", wage);
}
return 0;
}
例如:
我们现在要判断某一年是否为闰年,由常识可知满足闰年的条件为
1.公历年份是4的倍数且不是100的倍数为普通闰年
2.公历年份是整百数的,必须是400的倍数才是世界闰年
而年份只有闰年和非闰年,所以判断代码可以如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include
int main()
{
int year = 0;
while ((scanf("%d", &year)) != EOF)
{
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
{
printf("%d为闰年\n", year);
}
else
printf("%d不为闰年\n", year);
}return 0;
}
也就是说在"if… else…" 语句中, else 可以与另⼀个 if 语句连⽤,构成多重判断。
如图所示,
例如:我们现在来表示大部分原神玩家在不同等级的现状,代码如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include
int main()
{
int grade = 0;
while (scanf("%d", &grade) != EOF)
{
if (grade > 0 && grade < 61)
//判断合理等级(1--60级)
{
printf("该玩家");
if (grade <= 16 && grade > 0)//1--16
printf("啥都不懂,任务做不完,只会锄大地并被派蒙拉回去\n");
else if (grade < 46)//17--45
printf("经常有大佬来光顾,靠一点资源就能抱大腿拿世界boss材料\n");
else if (grade < 51)//46--50
printf("喜欢联机刷本的团队协作感,喜欢去萌新世界串门\n");
else if (grade < 56)//51--55
printf("依然喜欢刷本,最喜欢心海将军阿贝多2命钟离摆烂\n");
else if (grade < 60)//56--59
printf("已经基本不会去萌新世界串门,除非缺材料,偶尔会联机,初步进入摆烂状态\n");
else//60
printf("“大佬,菜菜,求带”(派蒙吃惊表情包)\n");
}
else//不合理等级
printf("游戏无输入等级\n");
}
return 0;
}
这就是嵌套if的基本用法。
例如,上⾯的代码中绿⾊背景的代码也是嵌套在 if 语句中的,构成了嵌套的 if 语句。
所以有了嵌套 if 语句,就可以完成更多复杂逻辑的判断。
到这里关于C语言if语句的基础介绍就此为止了,下面我们来看看switch语句的相关用法与说明
除了 if 语句外,C语⾔还提供了 switch 语句来实现分⽀结构。
switch 语句是⼀种特殊形式的 if…else 结构,⽤于判断条件有多个结果的情况。它把多重
的 else if 改成更易⽤、可读性更好的形式。
switch (expression)
{
case value1: statement
case value2: statement
default: statement
}
上⾯代码中,根据表达式 expression 不同的值,执⾏相应的 case 分⽀。如果找不到对应的值,
就执⾏ default 分⽀。
例如,可以利用switch语句来表示原神中几颗星代表什么颜色
(1星——白色;2星——绿色;3星——蓝色;4星——紫色;5星金色)代码如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include
int main()
{
int grade = 0;
while (scanf("%d", &grade) != EOF)
{
switch (grade)
{
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;
default:
printf("输入错误\n");
break;
}
}
return 0;
}
需要注意的是:
假如说,上述代码中没有"break;"我们运行代码后可以看到图中的后者
我们发现,程序原本只要输入“白色”即可,但是我们发现程序运⾏的结果却将所有的可能进行了输入。原因是 switch 语句也是分⽀效果的,只有在 switch 语句中使⽤ break 才能在跳出 switch 语句。
如果某⼀个 case 语句的后边没有 break 语句,代码会继续向下执⾏,有可能执⾏其他 case语句中的代码,直到遇到 break 语句或者 switch 语句结束。就⽐如上⾯的代码就执⾏了 多余的case语句。
所以在 switch 语句中 break 语句是⾮常重要的,能实现真正的分⽀效果。
当然, break 也不是每个 case 语句都得有,这就得根据实际情况来看了。我们再来看一个事例:
用C语言表示一个星期的第几天为工作日还是休息日,代码如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include
int main()
{
int day = 0;
while (scanf("%d", &day) != EOF)
{
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;
}
所以说,break在switch中的作用也是十分重要的。
将上述代码更换成if语句,代码如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include
int main()
{
int day = 0;
while (scanf("%d", &day) != EOF)
{
if (day < 6 && day > 0)//1--5
printf("工作日\n");
else if (day > 5 && day < 8)//6--7
printf("休息日\n");
else
printf("输入错误\n");
}
return 0;
}
两种代码都可实现分⽀结构,双方在不同的地方各有优势,这需要我们根据自己的经验来判断了。
至此,关于C语言基础的分支(选择)语句的介绍就到这里结束了,谢谢观看。
下期介绍:C语言的循环语句( while,for与 do-while循环 )