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

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


相关推荐
运维行者_2 分钟前
如何查看每个IP的带宽使用情况?NetFlow 技术实战指南
开发语言·网络·分布式·后端·架构·带宽
天天进步201522 分钟前
Python全栈项目--基于深度学习的图像超分辨率系统
开发语言·python·深度学习
小小晓.1 小时前
C++小白记:C风格字符串和数组用法
c语言·开发语言·c++
Helen_cai1 小时前
OpenHarmony 项目统一全局样式、尺寸、色彩主题封装 ThemeUtil(API23)
开发语言·前端·javascript·华为·harmonyos
郑州光合科技余经理1 小时前
家政O2O平台解析:从0搭建上门预约小程序解决方案
android·java·开发语言·前端·小程序·架构·php
深念Y1 小时前
开发者如何清理和迁移C盘堆积的垃圾
c语言·开发语言
2501_909509102 小时前
DAY 28
开发语言·python
user-猴子2 小时前
从零构建 2048 游戏,解析“Python-Use”范式的完整闭环
开发语言·python·游戏
qq_401700412 小时前
Qt容器性能优化:QVector、QHash、QMap到底应该怎么选?
开发语言·qt·性能优化
十月的皮皮2 小时前
STM32从零到量产开发:四路继电器工业控制模块开发实战笔记(小白视角)
c语言·笔记·stm32·stm32cubemx·hal库