目录
一.前言
生活中的所有事件几乎都可以用循环与分支这两大类及其之间的结合来表示,而在计算机中我们可以将其具象化为一段一段的代码,从而实现我们想实现的的目标。而今天,我就先向大家讲解分支语句的具体细节。
二.分支语句
通俗来说,分支语句其实就是面对不同的情景做出不同的选择而产生相应的结果。
1.if语句
⑴.结构与搭配
①与else搭配
#include <stdio.h>
int main()
{
int a = 10;
if (a > 0)
{
printf("a是正数\n");
}
else
{
printf("a不是正数\n");
}
return 0;
}
表示如果满足if中的条件则执行if下的语句,若不满足则进行else下的语句,即
②与else if搭配
#include <stdio.h>
int main()
{
int a = 10;
if (a > 0)
{
printf("a是正数\n");
}
else if (a == 0)
{
printf("a是零\n");
}
else
{
printf("a是负数\n");
}
return 0;
}
即若满足if的条件则进行其下的语句,若不满足if的条件但是满足else if的条件则进行其下的语句,若前两者条件均不满足,则进行else下的语句。
在这里else可以多次并列使用,即构成if...else if...else if...else if...else的形式,但当分支过多时不推荐使用此形式,而使用switch语句(仅限于整数类型)
⑵补充事项
在进行判断变量是否和一值相等时,为尽量避免出现过失性错误我们可以将该值置于等号的前面
#include <stdio.h>
int main()
{
int a = 20;
if (a == 20)//若不小心将==写成了=则这里会变成赋值操作,可能达不到自己想要的效果
{
printf("a = %d", a);
}
if (20 == a)//如果这里将==写成=则系统会自动报错,提醒你修改错误
{
printf("a = %d", a);
}
return 0;
}
⑶使用场景
适用于一些分支相对较少的情景。如判断两个数的大小关系、决定是否要去做一件事、回答问题时回应是否或不知道等。
2.switch语句
⑴形式与搭配
①与case搭配
#include <stdio.h>
int main()
{
int input = 3;//定义一个变量并赋值
switch (input)//将该变量置于此处进行下面大括号内的操作
//注意 {}很重要,不要丢掉它
{
case 1://判断变量是否为1,然后进行下面的语句
//case语句进行下面的语句不需要加{}
printf("input = 1\n");
case 2://以下皆同上
printf("input = 2\n");
case 3:
printf("input = 3\n");
case 4:
printf("input = 4\n");
}
return 0;
}
图解即为下图
但在运行这段程序后,我们发现事情并不像我们想得那么简单,它得到的是如下结果
那么,该如何解决这个问题呢?
②与break搭配
int main()
{
int input = 3;
switch (input)
{
case 1:
printf("input = 1\n");
break;
case 2:
printf("input = 2\n");
break;
case 3:
printf("input = 3\n");
break;
case 4:
printf("input = 4\n");
break;
}
return 0;
}
在加入了break之后,只要执行到break,立马跳出大括号
因此,我们便解决了①中的问题。
那有的人就有疑问了,那万一input不是1,2,3,4其中任何一个数字,那又怎么办呢 ?
③与default搭配
#include <stdio.h>
int main()
{
int input = 5;
switch (input)
{
case 1:
printf("input = 1\n");
break;
case 2:
printf("input = 2\n");
break;
case 3:
printf("input = 3\n");
break;
case 4:
printf("input = 4\n");
break;
default:
printf("input != 1,2,3,4\n");//!=为“不等于”的意思
break;
}
return 0;
}
在加入了default之后,在进行所有的case的判定之后,若全都没有执行则进行default里的语句,因此一般default置于switch语句的最后
⑵补充事项
在一些case语句之后并不需要加上任何语句(包括break)语句,如在判断一周中的某一天是工作日还是休息日时,有如下操作
#include <stdio.h>
int main()
{
int day = 6;//表示周六
switch (day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("工作日\n");
break;
case 6:
case 7:
printf("休息日\n");
break;
default:
break;
}
return 0;
}
我们可以根据switch语句的特殊性,使day处于1——4之间时,使其不断地向下“滑”到case 5,然后执行case 5中的语句 ,同样的day为6时同样可以执行case 7的语句。
⑶使用场景
可以运用在一些判断单一变量在多种不同数值下的不同语句的场景,比如上述的判断是否工作日、判断一天是一周中的星期几、判断一个月份是一年中的几月等。
三.结语
看完本文后,你会不会有如下感觉,啊,原来分支语句竟然是这样子进行的啊,那么恭喜你已经成功踏入了学习编程的道路,愿学习路上你我为伴,共向远行!(点个赞吧,谢谢啦)