资阳公司网站建设,微信公众号的开发,百度seo关键词优化工具,企业网站脚本语言文章目录1. if 语句2. if...else 语句3. if...else if...else 语句4. switch 语句5. 三元运算符 ( ? : )总结与对比如何选择C语言中的判断语句用于根据给定的条件来决定执行哪一段代码。其核心是条件为真#xff08;必须#xff09;则执行一段代码#xff0c;条件为假…
文章目录1. if 语句2. if...else 语句3. if...else if...else 语句4. switch 语句5. 三元运算符 ( ? : )总结与对比如何选择C语言中的判断语句用于根据给定的条件来决定执行哪一段代码。其核心是条件为真必须则执行一段代码条件为假非必须则执行另一段代码。C 语言把任何非零和非空的值假定为 true把零或 null 假定为 false。C语言提供了以下几种主要的判断/分支结构1、if 语句2、if…else 语句3、if…else if…else 语句4、switch 语句5、三元运算符条件运算符1. if 语句
这是最基本的形式。如果条件为真则执行后面的代码块。 语法
if (condition) {// 如果 condition 为真非0则执行这里的代码
}示例
#include stdio.hint main() {int number 10;if (number 5) {printf(数字大于5。\n); // 这行会被执行}return 0;
}2. if…else 语句
在 if 的基础上增加了一个 else 分支。如果条件为真执行 if 的代码块如果为假则执行 else 的代码块。
语法
if (condition) {// 条件为真时执行
} else {// 条件为假时执行
}示例
#include stdio.hint main() {int age 16;if (age 18) {printf(你已成年。\n);} else {printf(你是未成年人。\n); // 这行会被执行}return 0;
}3. if…else if…else 语句
用于检查多个条件。程序会按顺序检查每个 if 或 else if 的条件一旦某个条件为真就执行其对应的代码块然后跳过整个判断结构的其余部分。 语法
if (condition1) {// condition1 为真时执行
} else if (condition2) {// condition1 为假但 condition2 为真时执行
} else if (condition3) {// condition1 和 condition2 都为假但 condition3 为真时执行
} else {// 所有上述条件都为假时执行
}
// 可以有很多个 else if示例
#include stdio.hint main() {int score 85;if (score 90) {printf(成绩优秀\n);} else if (score 80) { // 85 80 为真执行这里printf(成绩良好。\n); // 这行会被执行} else if (score 70) {printf(成绩中等。\n);} else if (score 60) {printf(成绩及格。\n);} else {printf(成绩不及格。\n);}return 0;
}4. switch 语句
switch 语句用于基于一个整型或字符型表达式的值来执行不同的代码块。它是一种多路分支选择结构比多个 if…else if 更清晰。 语法
switch (expression) {case constant1:// 如果 expression 的值等于 constant1执行这里的代码break; // break 用于跳出 switchcase constant2:// 如果 expression 的值等于 constant2执行这里的代码break;case constant3:// ...break;default:// 如果 expression 的值不匹配任何 case执行这里的代码// default 是可选的
}重要规则 1、expression 的结果必须是整型或字符型。 2、case 后面的值必须是整型或字符型常量。 3、break 语句至关重要。如果省略 break程序会继续执行下一个 case 中的代码直到遇到 break 或 switch 结束。这被称为“穿透”fallthrough有时会故意这样用。 示例
#include stdio.hint main() {char grade B;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;
}故意使用“穿透”的示例
#include stdio.hint main() {int number 2;switch (number) {case 1:case 2:case 3:printf(数字是1, 2或3。\n); // number1,2,3 都会执行这里break;case 4:printf(数字是4。\n);break;default:printf(数字不是1,2,3,4。\n);}return 0;
}5. 三元运算符 ( ? : )
这是一个非常简洁的条件表达式可以看作是 if…else 的简写形式。它返回一个值。 语法
condition ? expression_if_true : expression_if_false;
如果 condition 为真整个表达式的值为 expression_if_true 的结果否则为 expression_if_false 的结果。示例
#include stdio.hint main() {int a 10, b 20;int max;// 等价于: if (a b) { max a; } else { max b; }max (a b) ? a : b;printf(较大的数字是%d\n, max); // 输出 20// 也可以直接用在函数参数等地方printf(a是%s\n, (a % 2 0) ? 偶数 : 奇数); // 输出 a是偶数return 0;
}图片来自菜鸟教程https://www.runoob.com/cprogramming/c-decision.html
总结与对比
语句类型用途优点if简单的单条件判断结构简单适用于所有条件、if…else二选一的分支逻辑清晰处理真假两种情况\if…else if…else多条件分支判断可以处理复杂的多个并列或递进条件switch基于单个表达式的多个固定值进行分支结构清晰效率高通常使用跳转表三元运算符 ? :简单的二选一条件赋值或返回代码简洁一行完成
如何选择
1、如果判断的条件是一个变量是否等于某些特定的常量值优先考虑 switch会使代码更清晰。
2、如果条件是一个范围如 score 60或者涉及多个变量的复杂逻辑如 a b c d则必须使用 if 系列语句。
3、如果只是简单的二选一赋值三元运算符非常方便。