各位佬和未来的佬们:
大家好!
今天我们来聊聊C语言中的分支语句
在了解分支语句之前,我们得先了解什么是语句
C语言的语句主要分为以下五种:
1,表达式语句
2,函数调用语句
3,控制语句
4,复合语句
5,空语句
今天要聊得分支语句就属于控制语句之中,控制语句是用于控制程序的执行流程,以实现程序的各种结构方式(C语言支持的结构方式:顺序结构、选择结构、循环结构)
C语言是一门结构化的程序设计语言,如果我们仔细观察周围,世界上的任何事情都可以由C语言的三种结构表示
现在我们了解了语句,那么我们正式开始探索分支语句的世界
分支语句也叫条件判断语句,他主要由if语句和Switch语句组成
1,if语句
if语句的结构是怎样的呢?
if语句分为以下三种结构
单分支
if(表达式)
语句;
双分支
if(表达式)
语句1;
else
语句2;
多分支
if(表达式1)
语句1;
else if(表达式2)
语句2;
else
语句3;
了解了if语句的结构,那我们来实际操作一下吧!
单分支语句
比如说,这里我们想表达出一个人年龄大于18岁就算成年,我们可以这样写
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>;
int main()
{
int age = 0;
scanf("%d", &age);
if (age >= 18)
printf("成年\n");
return 0;
}
但是,我们这个时候,我们只能知道年龄大于18岁的人是成年人,那小于18的呢?当输入小于18的数字时就什么也不会打印,所以,我们又有了双分支语句,来表示大于18岁的人是成年人,小于18岁的是未成年人
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>;
int main()
{
int age = 0;
scanf("%d", &age);
if (age >= 18)
printf("成年\n");
else
printf("未成年\n");
return 0;
}
这样我们就能很好的看出,多少岁成年,多少岁未成年,但是,我们生活中难免会遇到更多的分类,如果只用双分支肯定是不够分的,所以我们还有多分支语句,我同样用年龄给大家举个例子
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>;
int main()
{
int age = 0;
scanf("%d", &age);
if (age < 16)
printf("少年\n");
else if (age >= 16 && age < 30)
printf("青年\n");
else if (age >= 30 && age < 40)
printf("中年\n");
else if (age >= 40 && age < 56)
printf("壮年\n");
else if (age >= 56 && age < 80)
printf("老年\n");
else if (age >= 80 && age < 120)
printf("人仙\n");
else if (age >= 120 && age < 600)
printf("地仙\n");
else if (age >= 600 && age < 3000)
printf("天仙\n");
else
printf("飞升仙界,羽化登仙\n");
return 0;
}
这样是不是可以分的更细一点了,哈哈哈哈哈
if语句还有一个规范,就是if语句默认控制一条语句,若要两个语句被if控制,则要用{}
了解了这个规范,我们来看看下面这个代码是否有问题
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>;
int main()
{
int age = 20;
if (age >= 18)
printf("成年\n");
printf("谈恋爱\n");
return 0;
}
看上去好像很正常,输入编译器系统也不会报错,当age大于18的时候打印出的也是成年和能够谈恋爱,可如果age<18时,他依旧显示可以谈恋爱,这多少有点早恋了哈哈
所以,为了规范,我们加上{},这样就会表述不清了
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>;
int main()
{
int age = 20;
if (age >= 18)
{
printf("成年\n");
printf("谈恋爱\n");
}
return 0;
}
说完if语句,我们再来聊聊Switch语句吧
Switch语句常常用于多分支情况
比如表达星期几如果我们用if语句来表示,就会出现下面这种状况
看上去是不是很复杂
所以,我们就得有不一样的语法形式,就这样,Switch语句诞生了
当我们用Switch语句来表达星期几时就会简便很多
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>;
int main()
{
int day = 0;
scanf("%d", &day);
switch (day)
{
case 1:
printf("星期1\n");
case 2:
printf("星期2\n");
case 3:
printf("星期3\n");
case 4:
printf("星期4\n");
case 5:
printf("星期5\n");
case 6:
printf("星期6\n");
case 7:
printf("星期天\n");
}
return 0;
}
这样,我们就打好了一个Switch语句来表示星期几,我们输入3来运行一下.....
诶!等等,我们输入3只需要得到星期3这个结果呀!可为什么星期4,5,6...都蹦出来了
这里我再来了解一下case和break吧!
case在Switch语句中只决定入口,上面的代码我们只给了入口,没给他台阶下,所以,代码生气了,一口气跑到别人家,把别人也带出来了
为了不让代码生气,我们得给他个台阶,这个台阶就是break,break决定了出口,可以让代码不再连续下去
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>;
int main()
{
int day = 0;
scanf("%d", &day);
switch (day)
{
case 1:
printf("星期1\n");
break;
case 2:
printf("星期2\n");
break;
case 3:
printf("星期3\n");
break;
case 4:
printf("星期4\n");
break;
case 5:
printf("星期5\n");
break;
case 6:
printf("星期6\n");
break;
case 7:
printf("星期天\n");
break;
default:
printf("选择错误\n");
break;
}
return 0;
}
如此,我们再输入3时,他就只选择星期3打印了
那这里就有一个问题了,我们一定要惯着他吗?当然不是,宠坏了累的最后还是我们自己,所以,我们要视具体情况来看要不要给他台阶下,有时不给台阶下,反而能省很多事,比如
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>;
int main()
{
int day = 0;
scanf("%d", &day);
switch (day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("工作日\n");
break;
case 6:
case 7:
printf("休息日\n");
default:
printf("输入错误\n");
break;
}
return 0;
}
到这里,分支语句咱们就讲完了,下面给大家一个预告,一个简单的循环语句的代码(打印1~100的奇数)
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>;
int main()
{
int i = 1;
while (i <= 100)
{
printf("%d ", i);
i += 2;
}
return 0;
}
以上就是本期的全部内容了,如果大家觉得有帮助的话帮我点个赞吧!
如果有问题的地方还望各位佬能够不吝赐教,今天就到这里了~我们下期再见