在C语言中,选择结构(也称为条件语句或分支语句)用于基于特定条件来执行不同的代码块。选择结构主要有三种类型:`if` 语句,`if-else` 语句,以及 `switch` 语句。下面是对这些结构的详细说明,包括它们的语法和用法。
1. `if` 语句
`if` 语句是最基本的选择结构,它允许程序根据一个条件来执行一段代码。
语法:
if (condition) {
// 代码块,如果条件为真则执行
}
示例:
int x = 10;
if (x > 5) {
printf("x is greater than 5\n");
}
2. `if-else` 语句
`if-else` 结构允许定义两个代码块:一个在条件为真时执行,另一个在条件为假时执行。
语法:
if (condition) {
// 如果条件为真,执行此代码块
} else {
// 如果条件为假,执行此代码块
}
示例:
int score = 65;
if (score >= 70) {
printf("Pass\n");
} else {
printf("Fail\n");
}
3. `if-else if-else` 语句
当需要测试多个条件时,可以使用 `if-else if-else` 结构。
语法:
if (condition1) {
// 如果 condition1 为真,执行此代码块
} else if (condition2) {
// 如果 condition1 为假且 condition2 为真,执行此代码块
} else {
// 如果所有条件均为假,执行此代码块
}
示例:
int grade = 85;
if (grade >= 90) {
printf("A\n");
} else if (grade >= 80) {
printf("B\n");
} else if (grade >= 70) {
printf("C\n");
} else {
printf("D\n");
}
4. `switch` 语句
`switch` 语句用于基于不同情况执行不同的代码块。它通常用于处理多个离散的情况。
语法:
switch (expression) {
case constant_expression1:
// 当 expression 等于 constant_expression1 时执行的代码
break;
case constant_expression2:
// 当 expression 等于 constant_expression2 时执行的代码
break;
default:
// 如果没有匹配的 case,执行的代码
}
示例:
char grade = 'B';
switch (grade) {
case 'A':
printf("Excellent!\n");
break;
case 'B':
case 'C':
printf("Well done\n");
break;
case 'D':
printf("You passed\n");
break;
case 'F':
printf("Better try again\n");
break;
default:
printf("Invalid grade\n");
}
在使用选择结构时,请注意:
- 条件表达式应该产生一个布尔值(真或假)。
- `if` 和 `else` 块应使用花括号 `{}` 包围,即使只有一条语句。
- `break` 语句用于 `switch` 结构中,防止代码“掉入”下一个 `case` 块。
- `default` 子句在 `switch` 中是可选的,但推荐使用,以处理未预见的值。