一.什么是分支语句
- 如果你努力学习编程,掌握充裕的编程知识,在那么就能在春招,秋招拿到一个好offer,走上人生巅峰。
- 如果你不好好学习,荒废学业,那么毕业就等于失业,回家搬砖。
这,便是分支(选择)语句。
二.分支两兄弟
1.if - else语句
if-else其英文含义即为“如果 - 其他”,这是一种选择性的语句,他只会根据表达式结果来选择性的执行其中一个语句。
语法结构:
if(表达式)
语句;
if(表达式)
语句;
else
语句;
if(表达式)
语句;
else if(表达式)
语句;
else
语句;
在C语言中,0为假,非0为真,表达式的结果亦是如此。
#include<stdio.h>
int main()
{
int age;
scanf("%d",&age);
if(age >= 0 && age < 18)
printf("小孩");
else if(age >= 18 && age < 40)
printf("青年");
else if(age >= 40 && age < 60)
printf("中年");
else if(age >= 60)
printf("老年");
else
printf("输入年龄错误,请重新输入");
return 0;
}
这便是一个简单的年龄分段选择语句。
有一点要特别注意,当我们的if-else所控制的语句大于一条时,要用{ }括起来,如果仅有一条,便可以将其省略。
再看一段代码:
#include<stdio.h>
int main()
{
int a = 1;
int b = 2;
if(a == 0)
if(b == 2)
printf("hehe");
else
printf("haha");
return 0;
}
这样一段代码会打印出什么样的结果呢?
答案是:什么都不会打印。为什么呢?
其实,这个代码写规范会是下边的样子:
#include<stdio.h>
int main()
{
int a = 1;
int b = 2;
if(a == 0)
{
if(b == 2)
printf("hehe");
else
printf("haha");
}
return 0;
}
if和else如果成对出现的话,else则会与其最近的一个if组成一个选择,万万不可以为左边对齐了就组成了一对,要记住就近原则。
这就教育我们,写代码一定要规范,让你的代码更容易能被别人读懂,这样才是一个优秀的程序员。
2.switch - case语句
switch - case其英文含义为“开关 - 实例”,我们可以理解为,当我们需要用到某个实例时,我们就按下哪个开关即可。
语法结构:
switch(整形表达式)
{
case 整型常量表达式:
语句;
}
#include<stdio.h>
int main()
{
int a;
scanf("%d", &a);
switch (a)
{
case 1:
printf("星期一\n");
case 2:
printf("星期二\n");
case 3:
printf("星期三\n");
case 4:
printf("星期四\n");
case 5:
printf("星期五\n");
case 6:
printf("星期六\n");
case 7:
printf("星期日\n");
}
return 0;
}
如上代码,我们写了一个选择星期的语句,按照我们对switch - case的解释,每一个case都是一个实例,而( )内的'a',便是我们所要按下的开关,按下开关,便进入对应的实例中去。
但是这样一段代码,却有一个弊病:
如上,当我们仅仅选择打印“星期四”时,却连着后边的一起打印了,这是为什么呢?
事实上,这是switch - case语句自身的一个弊病,它虽然能控制我们从哪个入口进,却不能直接实现从哪儿进便能从哪儿出,因此,它需要用到break来解决这一弊病。
#include<stdio.h>
int main()
{
int a;
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;
}
return 0;
}
如上,我们用break这样一个“暴力”的关键字,来打破switch语句,实现哪儿进哪儿出。这样便能达到我们想要的结果啦。因此,break可谓是switch - case语句中不可或缺的一部分。
除了break以外,还有一个关键字,也是switch - case语句中不可或缺的一部分。
那便是:default,它在英文中有“不匹配”的意思,也就是说,当所有的case都不匹配时,便到了它出手的时候。
#include<stdio.h>
int main()
{
int a;
scanf("%d", &a);
switch (a)
{
case 6:
case 7:
printf("weekend\n");
break;
case 1:
case 2:
case 3:
case 4:
case 5:
printf("weekday\n");
break;
default:
printf("输入错误,请重新输入");
}
return 0;
}
当我输入一个非1 - 7的字符时,便要default来提示输入错误了。
同时上边的代码也是像告诉大家,case后边的整型常量表达式是可以乱序的,不过平时为了整治好看还是建议大家按顺序写哦。