一、引言
在 C 语言中,分支结构是程序控制流的重要组成部分。它允许程序根据不同的条件执行不同的代码块,从而实现更灵活和复杂的逻辑。分支结构使得程序能够根据输入、变量的值或其他条件来做出决策,决定程序的执行路径。
二、if 语句
- 基本形式
if (表达式)
语句;
- 当表达式的值为非零(即逻辑真)时,执行紧跟在
if
后面的语句;如果表达式的值为零(即逻辑假),则跳过该语句。
- 示例
#include <stdio.h>
int main() {
int num = 10;
if (num > 5) {
printf("The number is greater than 5.\n");
}
return 0;
}
- if - else 结构
if (表达式)
语句1;
else
语句2;
- 如果表达式的值为真,执行语句 1;否则,执行语句 2。
- 示例
#include <stdio.h>
int main() {
int num = 3;
if (num > 5) {
printf("The number is greater than 5.\n");
} else {
printf("The number is less than or equal to 5.\n");
}
return 0;
}
- 多重 if - else if 结构
if (表达式1)
语句1;
else if (表达式2)
语句2;
else if (表达式3)
语句3;
...
else
语句n;
- 依次判断各个表达式的值,当某个表达式的值为真时,执行对应的语句,然后跳出整个
if - else if
结构。如果所有表达式的值都为假,则执行else
后面的语句。
- 示例
#include <stdio.h>
int main() {
int num = 7;
if (num < 5) {
printf("The number is less than 5.\n");
} else if (num < 10) {
printf("The number is between 5 and 9 (inclusive).\n");
} else {
printf("The number is 10 or greater.\n");
}
return 0;
}
三、switch 语句
- 基本形式
switch (表达式)
{
case 常量表达式1:
语句1;
break;
case 常量表达式2:
语句2;
break;
...
default:
语句n;
}
- 先计算表达式的值,然后将其与各个
case
后的常量表达式的值进行比较。如果相等,则执行对应的语句,直到遇到break
语句跳出switch
结构。如果没有匹配的case
,则执行default
后面的语句。
- 示例
#include <stdio.h>
int main() {
int day = 3;
switch (day) {
case 1:
printf("Monday\n");
break;
case 2:
printf("Tuesday\n");
break;
case 3:
printf("Wednesday\n");
break;
case 4:
printf("Thursday\n");
break;
case 5:
printf("Friday\n");
break;
case 6:
printf("Saturday\n");
break;
case 7:
printf("Sunday\n");
break;
default:
printf("Invalid day number.\n");
}
return 0;
}
- 注意事项
switch
表达式和case
常量表达式必须是整型或字符型。case
常量表达式的值必须互不相同。break
语句用于跳出switch
结构,如果没有break
,程序会继续执行下一个case
的语句,直到遇到break
或switch
结束。
四、分支结构的嵌套
- 分支结构可以嵌套使用,即在一个
if
语句或switch
语句中包含另一个if
语句或switch
语句。 - 示例
#include <stdio.h>
int main() {
int num = 7;
if (num > 5) {
if (num < 10) {
printf("The number is between 5 and 9 (inclusive).\n");
} else {
printf("The number is 10 or greater.\n");
}
} else {
printf("The number is less than or equal to 5.\n");
}
return 0;
}
五、条件运算符(三元运算符)
- 基本形式
表达式1 ? 表达式2 : 表达式3
- 先计算表达式 1 的值,如果为真,则整个条件表达式的值为表达式 2 的值;否则,为表达式 3 的值。
- 示例
#include <stdio.h>
int main() {
int num1 = 5, num2 = 3;
int max = (num1 > num2) ? num1 : num2;
printf("The maximum number is %d.\n", max);
return 0;
}
六、分支结构的应用场景
- 数据验证:用于验证用户输入的数据是否符合特定的条件,例如判断输入的年龄是否在合理范围内,输入的密码是否符合格式要求等。
- 菜单选择:实现菜单驱动的程序,根据用户选择的菜单项执行相应的操作。
- 数学计算:根据不同的条件执行不同的数学运算,例如根据三角形的边长判断三角形的类型,并计算其面积。
- 游戏开发:在游戏中,根据角色的状态、用户的操作等条件来决定游戏的下一步动作,如角色的移动、攻击、防御等。
七、总结
C 语言的分支结构为程序提供了强大的决策能力,通过if
语句、switch
语句和条件运算符,能够根据不同的条件执行不同的代码路径,实现各种复杂的逻辑功能。在实际编程中,需要根据具体的问题需求选择合适的分支结构,并注意正确使用条件表达式和控制语句的执行流程,以确保程序的正确性和可靠性。同时,合理运用分支结构的嵌套和组合,可以构建出功能丰富、灵活多变的程序。掌握分支结构是 C 语言编程的重要基础,对于开发各种类型的应用程序都具有至关重要的作用。
八、习题
基础题
- 判断奇偶数:编写一个程序,让用户输入一个整数,然后判断这个数是奇数还是偶数,并输出相应的结果。
- 比较两个数的大小:编写程序,从用户那里获取两个整数,比较它们的大小,并输出较大的数。
- 判断是否为闰年:输入一个年份,判断该年份是否为闰年。闰年的判断规则是:能被 4 整除但不能被 100 整除,或者能被 400 整除。
进阶题
- 成绩等级划分:输入一个学生的考试成绩(0 - 100 分),根据以下规则输出对应的等级:
- 90 - 100 分:A
- 80 - 89 分:B
- 70 - 79 分:C
- 60 - 69 分:D
- 0 - 59 分:F
以上内容对 C 语言分支结构进行了较为全面的讲解,如果你还有其他具体问题或需要进一步的示例,欢迎随时留言评论。