条件语句
if语句中,首先判断表达式的值,然后根据该值的情况控制程序流程。表达式的值不等于0,即为真;否则为假。if语句有if,if–else和else if 三种形式。
一、if语句
if (条件表达式) {
// 条件为真时执行的语句
}
例如:
int num = 10;
if (num > 5) {
printf("num 大于 5。\n");
}
在这个例子中,如果 num 的值大于 5,就会输出 “num 大于 5。”。
if (条件表达式) {
// 条件为真时执行的语句
} else {
// 条件为假时执行的语句
}
例如:
int num = 3;
if (num > 5) {
printf("num 大于 5。\n");
} else {
printf("num 不大于 5。\n");
}
在这个例子中,如果 num 的值大于 5,就会输出 “num 大于 5。”,否则输出 “num 不大于 5。”。
if (条件表达式1) {
// 条件1为真时执行的语句
} else if (条件表达式2) {
// 条件2为真时执行的语句
} else if (条件表达式3) {
// 条件3为真时执行的语句
}
...
else {
// 所有条件都为假时执行的语句
}
例如:
int score = 85;
if (score >= 90) {
printf("优秀。\n");
} else if (score >= 80) {
printf("良好。\n");
} else if (score >= 70) {
printf("中等。\n");
} else if (score >= 60) {
printf("及格。\n");
} else {
printf("不及格。\n");
}
在这个例子中,根据不同的 score 值,会输出相应的等级评价。
上面的例子就是if – else嵌套。
条件运算符
条件运算符可对一个表达式的值的真假情况进行检验,然后根据检验结果返回另外两个表达式中的一个。
表达式1?表达式2:表达式3;
max=(a>b)?a:b;
在运算中,首先对第一个表达式的值进行检验。如果值为真,则返回第二个表达式;如果为假,则返回第三个表达式。
例:a>b为真,则max=a;为假,则max-b
开关语句
开关语句,包括以下四种关键字:
1.switch:开关语句
2.case: 开关语句分支
3.default: 开关语句中的“其他”分支
4.break: 跳出当前开关
开关语句
switch开关语句是一个多分支选择语句,并且可以支持嵌套。
switch ( 变量表达式 )
{
case 常量表达式1 : 语句; break;
case 常量表达式2 : 语句; break;
case 常量表达式3 : 语句; break;
...
case 常量表达式n: 语句; break;
default : 语句; break;
}
当变量表达式所表达的量与其中一个case语句中的常量相符时,就执行此case语句后面的语句,并依次下去执行后面所有case语句中的语句,除非遇到break;语句跳出switch语句为止。
如果变量表达式的量与所有case语句的常量都不相符,最后就执行default语句中的语句。
注意事项
switch语句非常有用,但在使用时必须谨慎。所写的任何switch语句都必须遵循以下规则:
- switch中的变量表达式,必须是整型数据,这些类型包括int、char等。
- 在case后的各常量表达式的值不能相同,否则会出现错误。
- 在case后,允许有多个语句,可以不用{}括起来。
- 各case和default子句的先后顺序可以变动,而不会影响程序执行结果。
- default子句可以省略不使用,但它可以用来处理所有未被case标签匹配到的情况。
- 在每个case标签处添加注释可以提高代码的可读性,特别是当case的逻辑比较复杂时。
- case标签值必须是常量表达式,不能是变量或运行时才能确定的值。
- 每个开关后都需要思考是否需要使用break。如果在某开关后没有break,那么它会执行下一个开关的内容。
举例说明
#include <stdio.h>
int main()
{
int choice;
printf("请输入一个数字(1-3):");
scanf("%d", &choice);
switch (choice) {
case 1:
printf("你选择了选项一。\n");
break;
case 2:
printf("你选择了选项二。\n");
break;
case 3:
printf("你选择了选项三。\n");
break;
default:
printf("输入错误,请输入 1-3 之间的数字。\n");
}
return 0;
}
这个程序提示用户输入一个数字,然后根据输入的数字执行不同的case分支。如果输入的数字不在 1-3 范围内,则执行default分支输出错误提示信息。
另一个使用字符作为switch表达式的例子:
#include <stdio.h>
int main()
{
char grade;
printf("请输入一个等级(A、B、C、D、F):");
scanf(" %c", &grade);
switch (grade) {
case 'A':
printf("优秀!\n");
break;
case 'B':
printf("良好!\n");
break;
case 'C':
printf("中等!\n");
break;
case 'D':
printf("及格!\n");
break;
case 'F':
printf("不及格!\n");
break;
default:
printf("输入错误的等级。\n");
}
return 0;
}
这个程序让用户输入一个等级字符,然后根据输入的字符输出相应的等级评价。如果输入的字符不是有效的等级字符,则执行default分支输出错误提示信息。
没有回复内容