目录
一 简介
C语言的三种控制结构分别是顺序、选择和循环。顺序结构按代码书写顺序执行;选择结构通过if、switch等关键字基于条件执行不同代码块;循环结构如while、for和do-while,根据给定条件重复执行某段代码。
二 三种结构
C语言的结构控制指的是程序流程控制,也称为控制结构,它们决定了程序中代码执行的顺序和逻辑。C语言的结构控制主要分为以下三大类:
顺序结构:
顺序结构是最简单的控制结构,程序按照从上到下的顺序逐行执行代码。没有特殊的控制指令,只要代码写在哪里,就从那里开始按顺序执行。
选择结构:
选择结构基于条件来决定执行哪段代码。主要有两种形式:
if语句:用于单一条件的选择,如果条件满足则执行相应代码块。
if (条件)
语句块1;
if-else语句:提供了两个选择,如果条件满足则执行第一个语句块,否则执行第二个语句块。
if (条件)
语句块1;
else
语句块2;
switch语句:用于多条件分支的选择,根据表达式的值匹配case标签并执行对应代码块。
switch (表达式) {
case 常量1:
语句块1;
break;
case 常量2:
语句块2;
break;
...
default:
默认语句块;
}
循环结构:
循环结构用于重复执行一段代码,直到满足某个终止条件为止。
- while循环:在每次迭代前检查条件,条件满足时继续执行循环体。
while (条件) {
语句块;
}
do-while循环:先执行一次循环体,然后在每次迭代结束后检查条件,条件满足时继续执行。
do {
语句块;
} while (条件);
for循环:包含了初始化、条件检查、递增(或递减)三个组成部分,通常用于已知循环次数的情况。
for (初始化; 条件; 更新) {
语句块;
}
通过这些结构控制语句,C语言提供了足够的灵活性来编写各种复杂逻辑的程序。此外,还有break、continue等关键词用于中断循环或跳过本次循环,goto语句用于无条件跳转到程序中任意标记的位置,但是goto语句在现代编程实践中并不推荐过度使用,因为它可能使程序结构变得难以理解和维护。
三 实例
顺序结构实例:
#include <stdio.h>
int main() {
int num1 = 10, num2 = 20;
// 顺序执行打印两个数字
printf("First number: %d\n", num1);
printf("Second number: %d\n", num2);
return 0;
}
这段程序从上至下顺序执行,首先定义两个整数变量num1和num2,然后顺序打印这两个数字。
选择结构实例(if语句):
#include <stdio.h>
int main() {
int score = 85;
if (score >= 90) {
printf("Grade: A\n");
} else if (score >= 80) {
printf("Grade: B\n");
} else if (score >= 70) {
printf("Grade: C\n");
} else {
printf("Grade: F\n");
}
return 0;
}
这段程序根据变量score的值,选择性地打印出对应的年级。
选择结构实例(switch语句):
#include <stdio.h>
int main() {
char day = 'M';
switch (day) {
case 'M':
printf("Today is Monday.\n");
break;
case 'T':
printf("Today is Tuesday.\n");
break;
case 'W':
printf("Today is Wednesday.\n");
break;
// 其他情况省略...
default:
printf("Invalid input.\n");
break;
}
return 0;
}
这段程序根据变量day的值(字符类型),选择性地打印出对应的星期。
循环结构实例(while语句):
#include <stdio.h>
int main() {
int i = 1;
while (i <= 5) {
printf("%d ", i);
i++;
}
printf("\n");
return 0;
}
这段程序将从1打印到5,每次循环都将i加1,直到i不再小于等于5为止。
循环结构实例(do-while语句):
#include <stdio.h>
int main() {
int j = 1;
do {
printf("%d ", j);
j++;
} while (j <= 5);
printf("\n");
return 0;
}
这段程序的功能与while循环的例子类似,只是do-while循环会先执行一次循环体,然后再检查条件。
循环结构实例(for语句):
#include <stdio.h>
int main() {
for (int k = 1; k <= 5; k++) {
printf("%d ", k);
}
printf("\n");
return 0;
}
这段程序同样是从1打印到5,但是使用for循环一次性定义了初始化、条件检查和更新的操作。