if-else
语句的语法如下:
if(expression)
Statement1;
else
Statement2;
Next_statement;
上面语法中,将始终执行Statement1
或Statement2
,具体取决于表达式的值是为true
还是false
:
- 如果
expression
的计算结果为true
,则执行Statement1
,然后继续执行Next_statement
,然而不会执行Statement2
。 - 如果
expression
的计算结果为false
,则执行else
关键字后面的Statement2
(然而不会执行Statement1
),程序继续执行Next_statement
。
以下代码使用if
语句来决定折扣的值。
示例代码
#include <stdio.h>
int main(void)
{
const double unit_price = 3.50; // 定义单价
int quantity = 0;
printf("请输入你要购买的产品数量:"); // 提示要输入什么信息
scanf(" %d", &quantity); // 读取输入的信息
// 测试符合折扣条件的购买产品数量
double total = 0.0; // 总价
if(quantity > 10) // 是否打95折
total = quantity*unit_price*0.95;
else // 没有折扣
total = quantity*unit_price;
printf("购买产品数量为:%d ,总共需要支付:¥%0.2f\n", quantity, total);
return 0;
}
编译并执行上面示例代码,得到以下结果:
hema@ubuntu:~/book$ gcc main.c
hema@ubuntu:~/book$ ./a.out
请输入你要购买的产品数量:11
购买产品数量为:11 ,总共需要支付:¥36.57
怎么运行的?
if-else
语句完成所有工作:
// 测试符合折扣条件的购买产品数量
double total = 0.0; // 总价
if(quantity > 10) // 是否打95折
total = quantity*unit_price*0.95;
else // 没有折扣
total = quantity*unit_price;
总额将存储在变量total
中。如果数量大于10
,将执行第一个赋值语句,将应用95%
的折扣。
否则,将执行第二次分配,不对价格进行任何折扣。
计算结果由printf()
语句输出:
printf("购买产品数量为:%d ,总共需要支付:¥%0.2f\n", quantity, total);
%d
说明符适用于数量,因为它是int
类型的整数。%0.2f
说明符适用于浮点变量total
,并在小数点后输出两位数的值。