1、什么是语句?
在C语言当中、语句可以分为:表达式语句、函数调用语句、控制语句、复合语句、空语句。
本章主要学习的选择(分支) / 循环语句都是控制语句。
控制语句 顾名思义就是用于控制程序的执行流程,以实现程序的各种结构方式(C语言支持三种结构:顺序结构、选
择结构、循环结构)。接下来就来学习选择语句和循环语句。
2、 选择语句
选择顾名思义就是在不同的路径中进行选择。
在程序当中就是:能够根据某些条件选择不同执行路径的语句,主要有 if
和 switch
语句
2.1、if
语句
2.1.1、if
语句结构:
//if判断,满足执行;省略else
if(表达式)
语句;
//单分支
if(表达式)
语句1;
else
语句2;
//多分支
if(表达式1)
语句1;
else if(表达式2)
语句2;
else
语句3;
2.1.2、if
语句使用示例
#include <stdio.h>
//代码1:输入一个年龄,判断是否成年,如果未成年就输出未成年
int main()
{
int age = 0;
scanf("%d", &age);
if(age<18)
{
printf("未成年\n");
}
}
//代码2:输入一个年龄,输出它是成年还是未成年
#include <stdio.h>
int main()
{
int age = 0;
scanf("%d", &age);
if(age<18)
{
printf("未成年\n");
}
else
{
printf("成年\n");
}
}
//代码3:输入一个年龄
// age<18 输出少年,18<=age<30 输出青年,30<=age<50 输出中年,50<=age<80 输出老年,age>=80 输出寿星
int main()
{
int age = 0;
scanf("%d", &age);
if(age<18)
{
printf("少年\n");
}
else if(age>=18 && age<30)
{
printf("青年\n");
}
else if(age>=30 && age<50)
{
printf("中年\n");
}
else if(age>=50 && age<80)
{
printf("老年\n");
}
else
{
printf("寿星\n");
}
}
解释: 如果if括号里面表达式的语为真,就执行。
C语言当中判断真假: 0表示假,非0表示真。
2.2、switch
语句
switch
语句用于处理多个固定值的条件,它的结构比多个 if-else
更加清晰。在需要对同一个变量进行多个值的判断时,switch
使用起来就十分方便。
2.2.1、switch
语句结构
switch (n) {
case val1:
// 当 n 等于 val1 时执行
break;
case val2:
// 当 n 等于 val2 时执行
break;
// 其他 case 分支
default:
// 如果没有匹配的值,执行此处代码
}
2.2.2、switch
语句使用实例:
比如我们现在要输入一个数(1 - 7),并对于输出星期几。
#include <stdio.h>
int main()
{
int day = 0;
scanf("%d",&day);
switch(day)
{
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;
}
注意: 这里每一个case语句下的break如果没有特殊需求就一定要写;如果不写,就会接着执行下一个case语句的左右就起不到分支的效果了。(这里如果不写,当你输入1时,输出的就不止星期一,而是星期一、星期二、星期三......星期天。)
当然这如果我们这一要求改了,输入1-5时要输出'weekday';而输入6-7时,输出'weekend'。我们就可以这样写。
int main()
{
int day = 0;
switch(day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("weekday\n");
break;
case 6:
case 7:
printf("weekend\n");
break;
}
return 0;
}
2.2.3、default
当 switch 表达式的值并不匹配所有 case 标签的值时,这个 default 子句后面的语句就会执行。
所以,每个switch语句中只能出现一条default子句。
但是它可以出现在语句列表的任何位置,而且语句流会像执行一个case标签一样执行default子句。
3、循环语句
循环语句,有三种,分别是 while、for、do{ }while。
3.1、for
语句
for
循环通常用于在已知循环次数的情况下进行重复操作。
语法:
c复制代码for (init; cond; incr) {
// 重复执行的代码
}
init
:初始化循环变量cond
:循环条件,每次循环都会检查incr
:每次循环结束后执行的递增或递减操作
示例:
一次输出1-5:
int main() {
for (int i = 0; i < 5; i++) {
printf("i = %d\n", i);
}
return 0;
}
3.2、while
语句
while循环与 for
循环类似。while
循环通常在循环次数不确定的情况下使用,程序会在每次循环之前检查条件。
int main() {
int i = 0;
while (i < 5) {
printf("i = %d\n", i);
i++;
}
return 0;
}
3.3、do{ }while
语句
do{ }while循环与while循环类似,唯一的不同就是do{ }while循环要先执行一次,再进行条件判断。
int main() {
int i = 0;
do {
printf("i = %d\n", i);
i++;
} while (i < 5);
return 0;
}
3.4、循环控制语句
3.4.1、break
语句
break语句,在循环过程中执行break语句,会直接跳出循环;break终止循环。
int main() {
for (int i = 0; i < 5; i++) {
if (i == 3) {
break;
}
printf("i = %d\n", i);
}
return 0;
}
### 3.4.2、`continue` 语句
continue 语句,在循环过程中执行continue语句,会跳过后面的语句,进入下一次循环。
int main() {
for (int i = 0; i < 5; i++) {
if (i == 2) {
continue;
}
printf("i = %d\n", i);
}
return 0;
}
C语言分支循环语句学习分享到这里了,感谢支持;
我会一直分享我个人的学习记录,欢迎大家来讨论。