if-else就像“智能开关“

一、if-else基础:程序中的"选择题"

1.1 基础语法(就像开关控制灯泡)

if (条件) {       // 如果满足条件
    // 开灯       // 执行这里的代码
} else {          // 否则
    // 关灯       // 执行这里的代码
}

1.2 超简单例子:判断是否下雨

#include <stdio.h>

int main() {
    int isRaining = 1;  // 1表示下雨,0表示晴天
    
    if (isRaining == 1) {
        printf("记得带伞!\n");  // 条件成立执行
    } else {
        printf("放心出门吧!\n");  // 条件不成立执行
    }
    
    return 0;
}

运行结果
记得带伞!
(尝试把isRaining改成0再看效果)


二、if的三种变身形态(附生活案例)

2.1 单选形态:单if语句

// 案例:体温异常报警
float temperature = 37.8;
if (temperature > 37.3) {
    printf(" 体温异常!请复查!\n");
}

2.2 双选形态:if-else

// 案例:网吧年龄检查
int age = 17;
if (age >= 18) {
    printf("欢迎光临!\n");
} else {
    printf("未成年禁止入内!\n");  // ✅ 会执行这里
}

2.3 多选形态:if-else if阶梯

// 案例:考试成绩评级
int score = 85;
if (score >= 90) {
    printf("A\n");
} else if (score >= 80) {  // 80~89分
    printf("B\n");          // ✅ 输出B
} else if (score >= 60) {
    printf("C\n");
} else {
    printf("D\n");
}

三、新手必犯的5大错误(附解决方案)

❌ 错误1:把===用       

//单个等号 = 是赋值运算符,用于给变量赋予一个值

//两个==号是相等运算符,用于判断两个操作数是否相等,结果为0或1

int password = 123456;
if (password = 123) {  // ❌ 错误!这里其实是赋值
    printf("登录成功!\n");  // 永远会执行!
}

修正

if (password == 123) {  // ✅ 正确比较

❌ 错误2:忘记写花括号{}

如果 if 语句的条件成立,且没有使用花括号 {} 来界定代码块,那么 if 语句只会执行紧跟其后的第一条语句,即执行到第一个分号‘;’语句结束。

int money = 100;
if (money > 50)
    printf("余额充足\n");  //到这里,第一个‘;’ if语句就结束了。
    printf("可以购物\n");  // ❌ 这行不受if控制!

修正

if (money > 50) {
    printf("余额充足\n");
    printf("可以购物\n");  // ✅ 明确代码块范围
}

❌ 错误3:浮点数直接比较

float a = 0.1 + 0.2;  // 实际是0.300000012
if (a == 0.3) {       // ❌ 条件不成立!
    printf("相等\n");
}

修正

#include <math.h>
if (fabs(a - 0.3) < 0.000001) {  // 允许微小误差
    printf("视为相等\n");          // ✅
}

四、3个超实用案例(复制就能运行)

案例1:判断奇偶数

int num;       
printf("输入一个整数:");
scanf("%d", &num);

if (num % 2 == 0) {  // %取余运算
    printf("%d是偶数\n", num);
} else {
    printf("%d是奇数\n", num);
}

案例2:简易计算器

char op;
double a, b;
printf("输入算式(如3+5):");
scanf("%lf%c%lf", &a, &op, &b);

if (op == '+') {
    printf("结果:%.2f\n", a + b);
} else if (op == '-') {
    printf("结果:%.2f\n", a - b);
} else {
    printf("❌ 不支持此运算符!\n");
}

案例3:闰年判断

int year;
printf("输入年份:");
scanf("%d", &year);

if ((year%4 == 0 && year%100 != 0) || year%400 == 0) {
    printf("%d年是闰年\n", year);
} else {
    printf("%d年不是闰年\n", year);
}

五、给初学者的4条黄金建议

  1. 先画流程图再写代码:用纸笔画出条件分支

  2. 多用调试工具:单步执行观察条件判断过程   //不会调试可以去网上学习,不要怕麻烦哦

  3. 优先写完整结构:即使暂时不需要else,也先写上{}//养成良好习惯

  4. 勤加练习


六、自测小练习

  1. 以下代码输出什么?

int x = 10;
if (x > 5) {
    printf("A");
} else if (x > 8) {
    printf("B");
}
  1. 如何修改代码,使输入3.0和3.00001都被视为"相等"?


配套示意图(可自行绘制或使用ASCII):

          ┌─────────┐
          │ 条件成立?
          └──┬──  ┬─┘
             │是  │否
┌────────────▼─┐ ┌▼────────────┐
│  执行if代码块 ││ 执行else代码块│
└──────────────┘ └──────────────┘

希望这份教程能帮助顺利入门!如果觉得有用,欢迎点赞收藏🌟评论区交流

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值