Skip to content

if 分支语句

条件语句用来根据不同的条件来执行不同的语句,C 语言中常用的条件语句包括 if 语句和 switch 语句。

if 语句

语法格式:

c
if (条件) {
    条件成立时,要做的事
    ……
}

案例需求:

  • 定义一个整数变量记录年龄
  • 判断是否满 18 岁(>=)
  • 如果满 18 岁,允许进网吧嗨皮

示例代码:

c
#include <stdio.h>

int main() {
    // 定义一个整数变量记录年龄
    int age;
    printf("请输入年龄:");
    scanf("%d", &age);
    // 判断是否满 18 岁(>=)
    if (age >= 18) {
        // 如果满 18 岁,允许进网吧嗨皮
        printf("允许进网吧嗨皮\n");
    }

    return 0;
}

if...else 语句

基本语法

语法格式:

c
if (条件) {
    条件成立时,要做的事
    ……
} else {
	条件不成立时,要做的事
    ……
}

案例需求:

  • 定义一个整数变量记录年龄
  • 判断是否满 18 岁(>=)
  • 如果满 18 岁,允许进网吧嗨皮
  • 否则,提示回家写作业

示例代码:

c
#include <stdio.h>

int main() {
    // 定义一个整数变量记录年龄
    int age;
    printf("请输入年龄:");
    scanf("%d", &age);
    // 判断是否满 18 岁(>=)
    if (age >= 18) {
        // 如果满 18 岁,允许进网吧嗨皮
        printf("允许进网吧嗨皮\n");
    } else {
        // 否则,提示回家写作业
        printf("回家写作业\n");
    }

    return 0;
}

三目运算符

运算符术语示例结果
?:三目运算符a>b?a:b;如果 a>b,整体为结果 a,否则整体结果为 b

示例代码:

c
#include <stdio.h>

int main() {
    // 通过三目运算符求 2 个数的最大值
    int a = 10;
    int b = 20;
    int c = a > b ? a : b;
    printf("最大值:%d\n", c);

    return 0;
}

if…else if…else 语句

语法格式:

c
if (条件 1) {
    条件 1 成立时,要做的事
    ……
} else if(条件 2) {
	条件 2 成立时,要做的事
    ……
} else {
	条件不成立时,要做的事
    ……
}

案例需求:

  • 天猫超市双 11 推出以下优惠促销活动:

    • 购物满 50 元,打 9 折;
    • 购物满 100 元,打 8 折;
    • 购物满 200 元,打 7 折;
    • 购物满 300 元,打 6 折;
  • 编程计算当购物满 s 元时,实际付费多少?

示例代码:

if - else if - else 示例

c
#include <stdio.h>

int main() {
    // 1. 定义变量记录购买金额 定义变量记录实际费用
    float money, real_money;

    // 2. 输入购买金额
    printf("请输入购买金额:");
    scanf("%f", &money);

    // 3. 根据购买金额判断折扣
    if (money >= 50 && money < 100) {
        // 购物满 50 元,打 9 折;
        real_money = money * 0.9;
    } else if (money >= 100 && money < 200) {
        // 购物满 100 元,打 8 折;
        real_money = money * 0.8;
    } else if (money >= 200 && money < 300) {
        // 购物满 200 元,打 7 折;
        real_money = money * 0.7;
    } else if (money >= 300) {
        // 购物满 300 元,打 6 折;
        real_money = money * 0.6;
    } else {
        // 不满 50 原价
        real_money = money;
    }

    printf("购买金额:%f  实际价格:%f\n", money, real_money);

    return 0;
}

优化后的代码:

c
#include <stdio.h>

int main()
{
    // 1. 定义变量记录购买金额 定义变量记录实际费用
    float money, real_money;

    // 2. 输入购买金额
    printf("请输入购买金额:");
    scanf("%f", &money);

    // 3. 根据购买金额判断折扣
    if (money >= 300) {
        // 购物满 300 元,打 6 折;
        real_money = money * 0.6;
    } else if (money >= 200) {
        // 购物满 200 元,打 7 折;
        real_money = money * 0.7;
    } else if (money >= 100) {
        // 购物满 100 元,打 8 折;
        real_money = money * 0.8;
    } else if (money >= 50) {
        // 购物满 50 元,打 9 折;
        real_money = money * 0.9;
    } else {
        // 不满 50 原价
        real_money = money;
    }

    printf("购买金额:%f  实际价格:%f\n", money, real_money);

    return 0;
}