C语言三大程序结构 & 单分支语句

核心概念:程序就像流水线,通过顺序、选择、循环三种结构完成复杂任务


🌟 一、三大程序结构图解

结构类型 形象比喻 代码示例
顺序 直行马路 → 不拐弯 printf("A"); printf("B");
选择 岔路口 → 二选一 if...else
循环 环形跑道 → 重复绕圈 for/while

🔍 二、选择结构:if语句完全指南

1. 基础语法(单分支)
复制代码
if(条件表达式) {
   语句1; // 条件成立时执行
} else {
   语句2;// 条件不成立时执行
}
2. 真假判断核心规则
  • :任何非0值(负数、正数)

  • 0(唯一假值)

3. 实战案例:年龄验证
复制代码
int age = 17;
if(age >= 18) {
    printf("允许进入网吧\n");  // 条件成立执行
} 
else
 {
    printf("未成年人禁止入内\n"); // 条件不成立执行
 }
// 输出:未成年人禁止入内

⚠️ 三、多条件判断避坑指南

🚫 错误写法
复制代码
if(10 < age < 20) ❌ // 错误!编译器会误解为 (10 < age) < 20
正确写法
复制代码
// 判断年龄在(10,20)区间
if(age > 10 && age < 20) { ✅ 
    printf("青少年模式\n");
}

// 判断年龄≤10 或 ≥60
if(age <= 10 || age >= 60) { ✅
    printf("特殊关爱人群\n");
}
🔑 逻辑运算符详解

| 运算符 | 名称 | 规则 | 示例 |
|------|-----|-----------------|------------------------|---|---|---|---|
| && | 逻辑与 | 两边为真 → 结果真 | (5>3) && (2<4) → 1 |
| || | 逻辑或 | 任意一边为真 → 结果真 | (5<3)(2<4) → 1 | ||||
| ! | 逻辑非 | 取反操作 | !(5>3) → 0 |


💼 四、代码块规范(职业习惯培养)

🚨 不良习惯(易出错)
复制代码
if(age > 18)
    printf("成年\n");  // 只有这一句属于if
    printf("可办信用卡\n"); // 此句永远执行 ❌
💡 规范写法(推荐)
复制代码
if(age > 18) { ✅
    printf("成年\n");
    printf("可办信用卡\n"); // 两句都在if控制内
} else {
    printf("未成年\n");
}

🌈 五、多分支结构扩展

复制代码
int score = 85;
if(score >= 90) {
    printf("A级\n");
} 
else if(score >= 80) {  // 前条件不满足时检查
    printf("B级\n");      // 本例输出:B级
} 
else if(score >= 60) {
    printf("C级\n");
} 
else {
    printf("不及格\n");
}

📝 六、总结表格

要点 正确写法示例 常见错误
单条件判断 if(a > 10) if(a > 10); ❌(多分号)
多条件区间判断 a>10 && a<20 10<a<20
代码块规范 使用{}包裹多语句 省略{}导致作用域错误
多分支结构 if...else if...else 漏写else导致逻辑漏洞

💡 学习技巧

  1. 遇到条件判断先画流程图

  2. 测试边界值(如age=18, score=60)

  3. 使用调试工具逐行观察执行过程

掌握这些核心要点,你就能轻松玩转条件判断啦! 🚀

相关推荐
2401_8762213415 分钟前
Reachability Query(Union-Find)
c++·算法
小莞尔3 小时前
【51单片机】【protues仿真】基于51单片机宠物投食器系统
c语言·stm32·单片机·嵌入式硬件·51单片机·proteus
躲着人群3 小时前
次短路&&P2865 [USACO06NOV] Roadblocks G题解
c语言·数据结构·c++·算法·dijkstra·次短路
一只鲲3 小时前
56 C++ 现代C++编程艺术5-万能引用
开发语言·c++
小欣加油4 小时前
leetcode 1493 删掉一个元素以后全为1的最长子数组
c++·算法·leetcode
争不过朝夕,又念着往昔5 小时前
即时通讯项目---网关服务
linux·c++·vscode
蓝风破云5 小时前
C++实现常见的排序算法
数据结构·c++·算法·排序算法·visual studio
怀旧,6 小时前
【C++】 9. vector
java·c++·算法
qq_479875438 小时前
设置接收超时(SO_RCVTIMEO)
c语言·算法
这儿有一堆花8 小时前
C++标准库算法:从零基础到精通
c++