易百教程

if...else语句

if-else语句的语法如下:

if(expression)
  Statement1;
else
  Statement2;

Next_statement;

上面语法中,将始终执行Statement1Statement2,具体取决于表达式的值是为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,并在小数点后输出两位数的值。