C语言的语句结构主要分为了三类语句:顺序语句、分支语句(也称之为选择语句)、循环语句。在很多函数中,都会出现语句嵌套使用,在实现简单基础的代码时也是经常会用上的。这一篇是一些有关于分支语句的方面知识。

分支语句也就是进行条件判断并选择执行代码,通常是利用 if 语句以及   switch 语句实现。

分支语句——if 语句、switch语句_分支语句if 语句

分支语句中接大多数在使用 if 语句。那么,if 语句时如何使用的呢?

if 语句语法结构

1. 单 if 语句
if (表达式)//表达式中表示判断条件为真则执行下面语句
语句;
2. if - else 语句
if (表达式)
语句1;
else
语句2;
3. 多分支 if 语句
if (表达式1)
语句1;
else if (表达式2)
语句2;
else
语句3;

具体可以看下面这个代码​

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{//根据输入的数字判断星期
int day;
scanf("%d", &day);
if (day == 1)
{
printf("周一");
}
else
{
if (day == 2)
{
printf("周二");
}
else if (day == 3)
{
printf("周三");
}
else if (day == 4)
{
printf("周四");
}
else
printf("周五");
}
return 0;
}

​注意 if 函数的匹配以及嵌套,else 遵循“就近原则”,若是没有{}, else直接与最近的 if 进行适配。

if 语句比较普遍、简单,就不需要着重细说,我们下面来看一看  switch 语句。​

分支语句——if 语句、switch语句_switch 语句_02switch 语句

可能会有人说:不是学了 if 语句来实现分支结构,那 switch 用来干什么?为什么要引进 switch 语句?

一、switch 函数使用场景

switch 语句的使用需要在一个特定的场景下:可以理解为逻辑结构语句是相同的,比如下面这种场景:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int day;
scanf("%d", &day);
if (day == 1)
{
printf("工作日");
}
else
{
if (day == 2)
{
printf("工作日");
}
else if (day == 3)
{
printf("工作日");
}
else if (day == 4)
{
printf("工作日");
}
else if (day == 5)
{
printf("工作日");
}
else if (day == 6)
{
printf("休息日");
}
else
printf("休息日");
}
return 0;
}

上面这个代码,当输入1,2,3,4,5时,输出的都将会是“工作日”。这样写太过繁琐、复杂,这只是一个简单代码,当出现大量代码,需要改进输出时,就会非常麻烦,所以我们这时可以使用 switch 语句更改上述代码:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int day;
scanf("%d", &day);
switch (day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("工作日");
break;
case 6:
case 7:
printf("休息日");
break;
}
return 0;
}
二、switch 语句语句结构——break
switch (number)
{
case1:statement 1;
break;
case2:statement 2;
break;
default:statement 3;
break;
}
switch (number)
{
case1:statement 1;
case2:statement 2;
default:statement 3;
}

在 switch 语句中很多人会以为 break 是一定要带的,其实不然,break 是否需要取决于该代码逻辑是否需要输出下面的值。

若是没有 break 语句,会出现什么情况,举个例子:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int day;
scanf("%d", &day);
switch (day)
{
case 1:
printf("工作日");
case 2:
printf("工作日");
case 3:
printf("工作日");
case 4:
printf("工作日");
case 5:
printf("工作日");
break;
case 6:
case 7:
printf("休息日");
break;
}
return 0;
}

这个代码若是输入 1 ,在每个 case 对应语句块中有 break 会输出一个“工作日”;而在这个代码中,会一直输出 5 个 “工作日”停止,因为此时输出第五个“工作日”会玉带case 5 中的 break 跳出整个循环。

分支语句占据了各种代码很重要的一个部分,在细节把控上尤为需要注意,好好巩固知识哦!分支语句——if 语句、switch语句_if 语句_03