C - If 语句
条件执行指令是计算机程序的基本要求。C 语言中的 if 语句是主要的条件语句。C 语言允许使用可选的 else 关键字来指定当 if 条件为假时要执行的语句。
C - if 语句
if 语句是 C 语言编程中一个基本的决策控制语句。根据 if 语句中布尔条件的真假,代码块中的一个或多个语句将被执行。
if 语句的语法
if 语句的语法如下:
if(boolean_expression) {
/* 如果布尔表达式为真,则将执行语句 */
}
if 语句如何工作?
C 使用一对花括号来组成代码块。如果布尔表达式的计算结果为真,则将执行 if 语句内的代码块。
如果布尔表达式的计算结果为假,则将执行 if 语句结束后(右花括号后)的第一组代码。
C 语言编程将任何非零和非空值视为真。如果值为零或空,则将其视为假值。
if 语句流程图
if 语句的行为如下流程图所示 -
流程图说明
当程序控制遇到 if 语句时,将评估条件。
如果条件为真,则执行 if 块内的语句。
如果条件为假,程序流程将绕过条件块。
执行 if 块之后的语句以继续程序流程。
C 语言 if 语句示例
此示例演示了if 语句。它判断变量的值是否小于 20,并告知用户。
#include <stdio.h>
int main (){
/*局部变量声明*/
int a;
// 针对不同的"a"值运行程序
// 先赋值为 12,然后再赋值为 40
a = 12; // 改为 40 并再次运行
printf("Value of a is : %d
", a);
// 使用 if 语句检查布尔条件
if(a < 20){
//如果条件成立,则打印以下内容
printf("a is less than 20
" );
}
return 0;
}
输出
运行上述程序并检查其输出 -
Value of a is : 12 a is less than 20
现在分配一个大于 20 的数字。if 条件不执行。
Value of a is: 40
带有逻辑运算的 if 语句
您可以在 if 语句的括号中使用 && 或 || 运算符,将复合布尔表达式放入括号中。
示例
以下示例中,比较三个变量"a"、"b"和"c"。当"a"大于"b"和"c"时,将执行 if 代码块。
#include <stdio.h>
int main () {
/*局部变量声明*/
int a, b, c;
/*对 a、b 和 c 使用不同的值
10, 5, 7
10, 20, 15
*/
// 下次分别改为 10,20,15
a = 10; b = 5; c = 7;
if (a>=b && a>=c){
printf ("a is greater than b and c
");
}
printf("a: %d b:%d c:%d", a, b, c);
return 0;
}
输出
运行代码并检查其输出 -
//当 a、b 和 c 的值为 10 5 7 时 a 大于 b 和 c a: 10 b:5 c:7 //当 a、b 和 c 的值为 10 20 15 时 a: 10 b:20 c:15
请注意,条件块后面的语句在执行该块之后执行。如果条件为假,程序将直接跳转到该代码块之后的语句。
多个 if 语句
如果您需要检查多个条件,可以多次使用 if 语句。
示例
在此示例中,净应付金额是通过对账单金额应用折扣来计算的。
如果金额在 1000 到 5000 之间,则适用 5% 的折扣;如果金额超过 5000,则适用 10% 的折扣。低于 1000 的购买不适用折扣。
#include <stdio.h>
int main () {
// 局部变量声明
int amount;
float discount, net;
/*分别针对 amount 500、2250 和 5200 的不同值运行程序。相应条件下的代码块将被执行*/
// 分别更改为 2250 和 5200 并再次运行
amount = 500;
if (amount < 1000){
discount=0;
}
if (amount >= 1000 && amount<5000){
discount=5;
}
if (amount >= 5000){
discount=10;
}
net = amount - amount*discount/100;
printf("Amount: %d Discount: %f Net payable: %f", amount, discount, net);
return 0;
}
输出
//when the bill amount is 500 Amount: 500 Discount: 0.000000 Net payable: 500.000000 //when the bill amount is 2250 Amount: 2250 Discount: 5.000000 Net payable: 2137.500000 //when the bill amount is 5200 Amount: 5200 Discount: 10.000000 Net payable: 4680.000000
使用 if 语句检查多个条件
您也可以在单个 if 语句中使用逻辑运算符检查多个条件。
示例
在此程序中,只有当"物理"和"数学"的平均成绩大于等于 50 分时,学生才会被判定为通过。此外,学生的两门科目成绩都必须超过 35 分。否则,学生将被判定为不通过。
#include <stdio.h>
int main (){
/*局部变量声明*/
int phy, maths;
float avg;
/*使用不同的物理和数学值来检查条件执行*/
//更改为 40, 40 和 80, 40
phy = 50; maths = 50;
avg = (float)(phy + maths)/2;
printf("Phy: %d Maths: %d Avg: %f
", phy, maths, avg);
if (avg >= 50 && (maths >= 35 && phy >= 35)){
printf("Result: Pass");
}
if (avg<50) {
printf("Result: Fail
");
}
return 0;
}
输出
运行代码并检查其输出 -
//当物理和数学成绩为 - 50 50 Phy: 50 Maths: 50 Avg: 50.000000 Result: Pass //当物理和数学成绩为 40 40 Phy: 40 Maths: 40 Avg: 40.000000 Result: Fail //当物理和数学成绩为 80 40 Phy: 80 Maths: 40 Avg: 60.000000 Result: Pass

c_decision_making.html