2021-10-29-
作者:Nico
时间: 2021-10-25
网站地址:https://github.com/sxfinn
目录
💦什么是语句
C语句可分为以下五类:
- 表达式语句
- 函数调用语句
- 控制语句
- 复合语句
- 空语句
这里介绍的是控制语句。
控制语句用于控制程序的执行流程,以实现特定的功能和结构,它们具有特定的语句定义符组成,C语言有九种控制语句。
分为三类:
- 分支语句:if、switch语句;
- 循环语句:while、for、do while语句;
- 转向语句:break、continue、goto、return语句;
💦分支语句(选择结构)
if语句
面对选择,我们会直接想或者说:我要XXX,我不要XXX。
举个例子:
面临以下选择
- 好好学习—>收获满满
- 无所事事—>继续废柴
可以看到二者是不可兼得的,只能选择其中的一个。
那么对于计算机呢?
if的语法结构:
//一般结构
if(表达式)
语句;
if(表达式)
语句;
//多分支结构
if(表达式1)
语句1;
else if(表达式2)
语句2;
else
语句;
注意:表达式的内容只看真假,可以是一个常数,可以是一个变量。
如下图:
由图可知:
若表达式结果为真,则对应语句执行。
那么C语言中如何表示真假?
C语言中 0为假,非0为真。
如果要执行的语句不止一条,那我们还需要将要执行的语句用大括号{}括起来。
例:
#include<stdio.h>
//代码1
int main()
{
int age = 0;
scanf("%d", &age);
if (age < 18)
{
printf("未成年\n");
}
else if (age > 18 && age < 60)
{
printf("壮年\n");
}
else if (age > 60)
{
printf("老年\n");
}
return 0;
}
代码2
int main()
{
double grade_point = 0;//初始化绩点
scanf("%lf", &grade_point);
if (grade_point >= 4.0 && grade_point < 5.0)
{
printf("优秀\n");
}
else if (grade_point < 4.0 && grade_point >= 3.0)
{
printf("一般\n");
}
else
printf("差\n");
return 0;
}
一个if与一个else匹配,如果有多个if或者else语句呢?
int main()
{
int a = 1;
int b = 2;
if (a == 5)
if (b == 2)
printf("true");
else
printf("false");
return 0;
}
输出结果:
无输出结果。
所以可以断定else是与第二个if匹配的。
可以看到上面代码的写法,很容易让我们产生误解,所以代码风格非常重要。
我们可以改写成以下形式:
int main()
{
int a = 1;
int b = 2;
if (a == 5)
{
if (b == 2)
printf("true");
}
else
{
printf("false");
}
return 0;
}
结论:else必须紧挨if后要执行的语句,且总是与最近且未匹配else的if匹配。
if语句的书写形式
//代码1
//函数体
if (1)
{
return 1;
}
return 2;
返回值结果:
1
上述代码给人模棱两可的感觉,表达不清晰,很容易产生误解。
我们来换一种写法
//代码2
if (1)
{
return 1;
}
else
{
return 2;
}
返回值结果:
1
显然,代码2的逻辑更加清晰,可读性更高。
结论:代码风格很重要,可读性和逻辑要好。
练习:
判断一个数是奇书还是偶数。
奇数:不可以被2整除的数。
偶数:可以被2整除的数。
能否被2整除就是我们的突破口,可以用此条件进行区分。
代码:
int main()
{
int i = 0;
scanf("%d", &i);
if (i % 2 == 0)
{
printf("%d是偶数\n", i);
}
else
{
printf("%d是奇数\n", i);
}
return 0;
}
输入:3
输出:3是奇数
输入:4
输出:4是偶数
分支语句(branch),如同河流的不同支流,分支少还好,但是当分支很多的情况呢?
我们再一个一个去写就太繁琐,于是switch语句的作用就体现出来了。
switch语句
通常是多分支的,有多种情况可以选择。
例如:我们想输出今天周几
输入1,输出周一
输入2,输出周二
输入3,输出周三
输入4,输出周四
输入5,输出周五
输入6,输出周六
输入7,输出周天
if语句实现:
int main()
{
int day = 0;
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 if (day == 7)
printf("周七");
else
printf("输入错误");