if-else 双分支结构

为了提供更多的灵活性,C语言在基础 if 语句上扩展出了 if-else 结构,用于处理非此即彼的双重选择场景。

1. 生活逻辑与代码映射

以“雨天决策”为例:

  • 条件:如果今天的雨比昨天还大
  • 真(是):带上雨伞
  • 假(否/否则):穿上夹克
  • 后续:徒步上班(无论走哪条分支,最后都会执行)

2. 语法结构与执行流程

一般语法:

if(表达式)
    语句1;
else 
    语句2;
其它语句;Code language: JavaScript (javascript)

执行规则:

  • 表达式为真(非0):执行 语句1,然后跳过 语句2,继续执行“其它语句”。
  • 表达式为假(0):跳过 语句1,执行 语句2,然后继续执行“其它语句”。

3. 完整代码示例

场景:单价 3.50 元,订购数量 > 10 个打 95 折(优惠5%),否则无折扣。

#include <stdio.h>

int main(void)
{
  const double unit_price = 3.50;   /* 单价 */
  int quantity = 0;
  
  printf("请输入您要购买的数量:");
  scanf(" %d", &quantity);

  /* 判断数量是否达到折扣门槛 */
  if(quantity > 10)                 /* 超过10个:打95折 */
    printf("购买 %d 个的总价格是 %.2f\n", quantity, quantity * unit_price * 0.95);
  else                             /* 否则:无折扣 */
    printf("购买 %d 个的总价格是 %.2f\n", quantity, quantity * unit_price);
    
  return 0;
}Code language: PHP (php)

逻辑解析:输入 12 时 12 > 10 为真,走打折分支;输入 8 时为假,走 else 无折扣分支。最终都结束并 return 0。

4. if 与 if-else 核心对比

特性基础 if (单分支/多独立)if-else (双分支)
分支数量​可多个独立判断(互不影响)严格二选一(互斥)
执行效率​每个 if 都会判断(可能全判)判断一次,选其一执行
适用场景​多种可能同时发生的情况非此即彼的互斥情况
代码简洁度​冗余度高(重复写 if)结构紧凑,逻辑清晰

6. 提示

当遇到多个互斥条件(如:数量≤10无折,11~20打95折,21~50打9折,>50打85折)时,基础 if-else 可延伸为 else if 阶梯结构(后续知识点):

if(quantity > 50) { ... }
else if(quantity > 20) { ... }
else if(quantity > 10) { ... }
else { ... }Code language: JavaScript (javascript)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注