在C语言中,分支和循环是控制程序流程的基本结构。以下是对C语言中分支和循环语句的详细讲解。
分支语句
分支语句允许程序根据条件改变执行路径。C语言中主要有两种分支语句:if
语句和 switch
语句。
1. if
语句
if
语句是最常用的分支语句之一。它的基本语法如下:
c
if (条件) { // 条件为真时执行的代码 } else { // 条件为假时执行的代码 }
- 单分支
if
:当条件为真时,只执行if
语句块中的代码。 - 双分支
if
:当条件为真时,执行if
语句块中的代码;否则,执行else
语句块中的代码。
还可以使用 else if
来处理多个条件:
c
if (条件1) { // 条件1为真时执行的代码 } else if (条件2) { // 条件2为真时执行的代码 } else { // 所有条件都不为真时执行的代码 }
2. switch
语句
switch
语句用于根据一个变量的值选择不同的执行路径。它的基本语法如下:
c
switch (变量) { case 值1: // 当变量等于值1时执行的代码 break; case 值2: // 当变量等于值2时执行的代码 break; default: // 当变量不等于任何case中的值时执行的代码 }
case
标签:每个case
标签对应一个值。如果变量的值与某个case
标签的值相等,程序会执行该case
标签后面的代码。default
标签:如果变量的值不匹配任何case
标签,程序会执行default
标签后面的代码。break
语句:用于终止switch
语句的执行。如果没有break
,程序会继续执行下一个case
的代码,这称为“穿透”(fall-through)。
循环语句
循环语句允许程序重复执行一段代码。C语言中主要有两种循环语句:for
循环和 while
循环。
1. for
循环
for
循环是一种计数器循环,它的基本语法如下:
c
for (初始化表达式; 条件表达式; 更新表达式) { // 循环体 }
- 初始化表达式:在循环开始前执行一次,通常用于初始化计数器。
- 条件表达式:在每次循环开始前检查。如果条件为真,执行循环体;如果条件为假,循环结束。
- 更新表达式:在每次循环结束后执行,通常用于更新计数器。
2. while
循环
while
循环是一种前测试循环,它的基本语法如下:
c
while (条件表达式) { // 循环体 }
- 条件表达式:在每次循环开始前检查。如果条件为真,执行循环体;如果条件为假,循环结束。
3. do-while
循环
do-while
循环是一种后测试循环,它的基本语法如下:
c
do { // 循环体 } while (条件表达式);
- 条件表达式:在每次循环结束后检查。如果条件为真,继续执行循环体;如果条件为假,循环结束。
示例
以下是一些示例代码,展示如何使用这些控制结构:
c
#include <stdio.h> int main() { int a = 5; if (a > 10) { printf("a is greater than 10\n"); } else if (a > 5) { printf("a is greater than 5\n"); } else { printf("a is less than or equal to 5\n"); } switch (a) { case 5: printf("a is 5\n"); break; case 10: printf("a is 10\n"); break; default: printf("a is not 5 or 10\n"); } for (int i = 0; i < 5; i++) { printf("i is %d\n", i); } while (a > 0) { printf("a is %d\n", a); a--; } do { printf("a is %d\n", a); a++; } while (a < 0); return 0; }