一、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条黄金建议
-
先画流程图再写代码:用纸笔画出条件分支
-
多用调试工具:单步执行观察条件判断过程 //不会调试可以去网上学习,不要怕麻烦哦
-
优先写完整结构:即使暂时不需要else,也先写上
{}//养成良好习惯
-
勤加练习
六、自测小练习
-
以下代码输出什么?
int x = 10; if (x > 5) { printf("A"); } else if (x > 8) { printf("B"); }
-
如何修改代码,使输入3.0和3.00001都被视为"相等"?
配套示意图(可自行绘制或使用ASCII):
┌─────────┐ │ 条件成立? └──┬── ┬─┘ │是 │否 ┌────────────▼─┐ ┌▼────────────┐ │ 执行if代码块 ││ 执行else代码块│ └──────────────┘ └──────────────┘
希望这份教程能帮助顺利入门!如果觉得有用,欢迎点赞收藏🌟评论区交流