1、什么是语句?

​ 在C语言当中、语句可以分为:表达式语句、函数调用语句、控制语句、复合语句、空语句。

本章主要学习的选择(分支) / 循环语句都是控制语句。

控制语句 顾名思义就是用于控制程序的执行流程,以实现程序的各种结构方式(C语言支持三种结构:顺序结构、选

择结构、循环结构)。接下来就来学习选择语句和循环语句。

2、 选择语句

​ 选择顾名思义就是在不同的路径中进行选择。

在程序当中就是:能够根据某些条件选择不同执行路径的语句,主要有 ifswitch 语句

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语言分支循环语句学习分享到这里了,感谢支持;

我会一直分享我个人的学习记录,欢迎大家来讨论。