在 C 语言编程中,判断结构起着至关重要的作用。它允许程序根据不同的条件来决定执行不同的代码块,从而实现程序的逻辑控制和流程分支。通过合理运用判断结构,开发者能够使程序更加智能地处理各种情况,满足多样化的需求。理解并熟练掌握 C 语言中的判断结构,是编写高效、灵活程序的基础。
if (condition) {
// 当 condition 为真(非0)时执行的代码块
}
condition 是一个表达式,其结果会被计算并判断真假。如果 condition 的值为非零(即逻辑真),则大括号 {} 内的代码块将被执行;若 condition 的值为零(逻辑假),则该代码块会被跳过。
程序执行到 if 语句时,首先计算 condition 的值。若为真,进入代码块执行其中的语句;若为假,直接跳过代码块,继续执行 if 语句之后的代码。
#include
int main() {
int num = 10;
if (num > 5) {
printf("数字大于 5\n");
}
return 0;
}
在这个例子中,变量 num 的值为 10,num > 5 条件为真,因此会输出 "数字大于 5"。
if (condition) {
// 当 condition 为真(非0)时执行的代码块
} else {
// 当 condition 为假(0)时执行的代码块
}
与 if 语句不同,if - else 语句提供了两种分支选择。当 condition 为真时,执行 if 后面大括号内的代码块;当 condition 为假时,执行 else 后面大括号内的代码块。
程序计算 condition 的值,若为真,执行 if 代码块;若为假,执行 else 代码块。无论哪种情况,执行完相应代码块后,都会继续执行 if - else 语句之后的代码。
#include
int main() {
int num = 3;
if (num > 5) {
printf("数字大于 5\n");
} else {
printf("数字小于或等于 5\n");
}
return 0;
}
此例中,num 的值为 3,num > 5 条件为假,所以输出 "数字小于或等于 5"。
if (condition1) {
// 当 condition1 为真(非0)时执行的代码块
} else if (condition2) {
// 当 condition1 为假且 condition2 为真时执行的代码块
} else if (condition3) {
// 当 condition1 和 condition2 都为假且 condition3 为真时执行的代码块
} else {
// 当所有条件都为假时执行的代码块
}
这种结构可以处理多个条件的判断。程序会依次计算 condition1、condition2、condition3 等条件的值,一旦某个条件为真,就执行对应的代码块,然后跳出整个 if - else if - else 结构。如果所有条件都为假,则执行 else 后面的代码块。
从 condition1 开始计算,若为真,执行对应代码块并结束结构;若为假,继续计算 condition2,以此类推。若所有条件都为假,执行 else 代码块。
#include
int main() {
int score = 75;
if (score >= 90) {
printf("成绩等级为 A\n");
} else if (score >= 80) {
printf("成绩等级为 B\n");
} else if (score >= 70) {
printf("成绩等级为 C\n");
} else if (score >= 60) {
printf("成绩等级为 D\n");
} else {
printf("成绩等级为 F\n");
}
return 0;
}
这里 score 为 75,score >= 70 条件为真,所以输出 "成绩等级为 C"。
switch (expression) {
case constant1:
// 当 expression 的值等于 constant1 时执行的代码块
break;
case constant2:
// 当 expression 的值等于 constant2 时执行的代码块
break;
// 可以有多个 case 分支
default:
// 当 expression 的值与所有 case 常量都不相等时执行的代码块
}
expression 是一个表达式,其结果会与各个 case 后面的常量进行比较。如果找到匹配的 case,则执行该 case 后面的代码块,直到遇到 break 语句或 switch 结构结束。default 分支是可选的,当 expression 的值与所有 case 常量都不匹配时,执行 default 后面的代码块。
计算 expression 的值,然后依次与各 case 常量比较。若找到匹配,执行对应代码块,遇到 break 跳出 switch;若都不匹配且有 default,执行 default 代码块。
#include
int main() {
int day = 3;
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;
default:
printf("无效的日期\n");
}
return 0;
}
由于 day 的值为 3,所以会输出 "星期三"。
在 C 语言中,判断结构可以相互嵌套,即在一个判断结构的代码块内再使用另一个判断结构。例如:
#include
int main() {
int num = 15;
if (num > 10) {
if (num < 20) {
printf("数字在 10 到 20 之间\n");
}
}
return 0;
}
此例中,先判断 num > 10,若为真,再在内部 if 语句中判断 num < 20,若也为真,则输出 "数字在 10 到 20 之间"。