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 小时前
C++/Linux小项目:自主shell命令解释器
linux·服务器·开发语言·c++·后端·学习
EXtreme352 小时前
C语言指针深度剖析(2):从“数组名陷阱”到“二级指针操控”的进阶指南
c语言·开发语言·算法
程序员大雄学编程2 小时前
定积分的几何应用(一):平面图形面积计算详解
开发语言·python·数学·平面·微积分
Evand J2 小时前
【MATLAB例程】二维平面的TOA定位,几何精度因子GDOP和克拉美罗下界CRLB计算与输出
开发语言·matlab·平面·crlb·gdop
草莓火锅3 小时前
用c++求第n个质数
开发语言·c++·算法
aniden3 小时前
Swagger从入门到实战
java·开发语言·spring
玖剹3 小时前
多线程编程:从日志到单例模式全解析
java·linux·c语言·c++·ubuntu·单例模式·策略模式
emma羊羊3 小时前
【PHP反序列化】css夺旗赛
开发语言·网络安全·php
下午见。3 小时前
【C语言学习笔记】动态内存分配:malloc/free的正确打开方式
c语言·笔记·学习