C语言流程控制:if判断语句全解析

✅ C语言流程控制:if判断语句全解析

C语言流程控制:if判断语句全解析


🌟 一、单分支 if

📌 条件成立则执行,否则跳过。

c 复制代码
#include <stdio.h>
int main() {
    int age;
    printf("请输入年龄:");
    scanf("%d", &age);

    if (age >= 18) {
        printf("已成年,可以独立行为!\n");
    }

    return 0;
}

🌟 二、if...else(二选一结构)

c 复制代码
#include <stdio.h>
int main() {
    int num;
    printf("请输入一个整数:");
    scanf("%d", &num);

    if (num % 2 == 0) {
        printf("偶数\n");
    } else {
        printf("奇数\n");
    }

    return 0;
}

🌟 三、if...else if...else(多分支结构)

c 复制代码
#include <stdio.h>
int main() {
    float score;
    printf("请输入成绩:");
    scanf("%f", &score);

    if (score >= 90) {
        printf("优秀(A)\n");
    } else if (score >= 80) {
        printf("良好(B)\n");
    } else if (score >= 70) {
        printf("中等(C)\n");
    } else if (score >= 60) {
        printf("及格(D)\n");
    } else {
        printf("不及格(F)\n");
    }

    return 0;
}

🌟 四、嵌套 if(条件中再判断)

c 复制代码
#include <stdio.h>
int main() {
    int year;
    printf("请输入年份:");
    scanf("%d", &year);

    if (year % 4 == 0) {
        if (year % 100 != 0) {
            printf("闰年\n");
        } else {
            if (year % 400 == 0)
                printf("闰年\n");
            else
                printf("平年\n");
        }
    } else {
        printf("平年\n");
    }

    return 0;
}

⚠️ 建议写法(更简洁):

c 复制代码
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)

✅ 五、综合示例:多条件判断

📌 输入身高和体重,判断是否标准体重

  • 标准体重 ≈ 身高cm - 110
  • 允许误差 ±5kg
c 复制代码
#include <stdio.h>
int main() {
    int height, weight, standard;
    printf("请输入身高(cm)和体重(kg):");
    scanf("%d %d", &height, &weight);

    standard = height - 110;

    if (weight > standard + 5) {
        printf("偏重\n");
    } else if (weight < standard - 5) {
        printf("偏轻\n");
    } else {
        printf("标准体重\n");
    }

    return 0;
}

🧠 六、常见错误总结

错误写法 原因
if(x = 5) = 是赋值,应使用 ==
if x > 0 条件必须加括号 ()
多语句不加 {} 可能造成逻辑错误
缩进混乱 可读性差,易错

✅ 建议:每次都写 {},培养规范思维


🧪 七、课堂练习


📝 练习1:判断是否正数

c 复制代码
#include <stdio.h>
int main() {
    int n;
    printf("请输入一个整数:");
    scanf("%d", &n);

    if (n > 0)
        printf("正数\n");
    else
        printf("非正数\n");

    return 0;
}

📝 练习2:最高分判断(两者比较)

c 复制代码
#include <stdio.h>
int main() {
    float a, b;
    printf("请输入两个分数:");
    scanf("%f %f", &a, &b);

    if (a > b)
        printf("第一个更高:%.2f\n", a);
    else
        printf("第二个更高:%.2f\n", b);

    return 0;
}

📝 练习3:三角形合法性判断

任意两边之和大于第三边 👉 才能构成三角形

c 复制代码
#include <stdio.h>
int main() {
    int a, b, c;
    printf("请输入三条边长:");
    scanf("%d %d %d", &a, &b, &c);

    if (a + b > c && a + c > b && b + c > a)
        printf("可以构成三角形\n");
    else
        printf("不能构成三角形\n");

    return 0;
}

🔜 下一节预告

C语言多分支结构 ------ switch语句全解析

对菜单选择、分类判断特别好用 ✅


相关推荐
fqbqrr39 分钟前
2606C++,C++构的多态
开发语言·c++
biter down1 小时前
从 0 到 1 搭建 Python 接口自动化测试框架(博客系统实战)
开发语言·python
threelab3 小时前
Three.js 物理模拟着色器 | 三维可视化 / AI 提示词
开发语言·前端·javascript·人工智能·3d·着色器
武器大师723 小时前
lv_binding_js 代码解读
开发语言·javascript·ecmascript
不知名的老吴3 小时前
线程的生命周期之线程“插队“
java·开发语言·python
Hello:CodeWorld4 小时前
C 风格变参 vs C++ 变参模板:核心区别与选型指南
c语言·c++·算法
kaikaile19954 小时前
数字全息图处理系统(C# 实现)
开发语言·c#
秋95 小时前
Go语言(Golang)开发工程师全景解析:岗位职责·语言优势与使用场景·各城市薪资·发展前景·高考志愿填报(2026版)
开发语言·golang·高考
十月的皮皮6 小时前
C语言学习笔记20260606- 求月份天数三种写法
c语言·笔记·学习