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语句全解析

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


相关推荐
IT北辰9 分钟前
用 Python 自动解析药品规格并计算包装总容量 —— pandas + 正则实战
开发语言·python·pandas
资生算法程序员_畅想家_剑魔15 分钟前
Java常见技术分享-10-装饰器模式
java·开发语言·装饰器模式
zzoood17 分钟前
【PHP】富文本编辑器图片自动追加域名
开发语言·php
林shir19 分钟前
Java基础1.4-运算符
java·开发语言
serendipity_hky34 分钟前
【go语言 | 第6篇】Go Modules 依赖解决
开发语言·后端·golang
小oo呆1 小时前
【学习心得】Python的TypedDict(简介)
开发语言·python
文洪涛1 小时前
VS Code Python “第一次运行失败 / 先执行 python 再激活 Conda” 问题定位与解决
开发语言·python·conda
wanghowie1 小时前
01.08 Java基础篇|设计模式深度解析
java·开发语言·设计模式
wjs20241 小时前
Memcached stats 命令详解
开发语言
云技纵横1 小时前
Stream API 从入门到实践:常用操作、易错点与性能建议
开发语言·windows·python