C语言分支与循环

1.语句基础与真假值

C语言中的控制语句主要分为三类:

  1. 分支语句 (选择结构): if, switch
  2. 循环语句: while, for, do while
  3. 转向语句: break, goto, continue, return

核心概念:C语言中的真假

C语言中,0 表示 ,非0 表示

2. 分支语句

2.1 if 语句

语法结构包括单分支、双分支 (else) 和多分支 (else if)。

经典坑点:悬空 else (Dangling else)

else 总是和它离得 最近 的那个 if 匹配,而不是和缩进对齐的那个匹配

cpp 复制代码
// 错误示范:你以为 else 是匹配第一个 if 的吗?
int a = 0;
int b = 2;
if(a == 1)
    if(b == 2)
        printf("hehe\n");
else
    printf("haha\n"); 
// 实际结果:什么都不打印,因为 else 匹配的是 if(b==2),而 if(a==1) 为假根本没进内层。

2.2 switch 语句

用于处理多分支情况,语法结构如下:

  • switch(整型表达式):括号里必须是整型结果。
  • case 整型常量表达式::必须是常量。
  • break 的重要性: switch 无法自动跳出,必须搭配 break 才能实现真正的分支,否则会"穿透"执行
  • default 子句: 处理所有 case 都不匹配的情况,可以写在任何位置,但习惯放在最后

3. 循环语句

3.1 while 循环

先判断,后执行。如果条件一开始就不满足,一次都不执行。

3.2 for 循环 (最常用)

语法:for(初始化; 判断; 调整)

优点: 将循环的三个必要条件集中在一起,比 while 更不容易出错

3.3 do...while 循环

先执行,后判断。特点:循环体至少执行一次

break vs continue

  • break永久终止 循环,直接跳出 。
  • continue终止本次 循环,跳过后面代码,直接进入下一次判断。

4. goto 语句

虽然理论上可以被循环替代,但在跳出深层嵌套循环时非常有用

cpp 复制代码
for(...) {
    for(...) {
        if(disaster)
            goto error; // 直接跳出两层循环
    }
}
error:
    // 处理错误
相关推荐
宠..几秒前
VS Code SSH 远程连接 Ubuntu 并实现快速运行(C/C++示例)
java·运维·c语言·开发语言·c++·ubuntu·ssh
Omics Pro几秒前
免费!糖蛋白质组学数据分析
开发语言·深度学习·数据挖掘·数据分析·r语言·excel·知识图谱
枫叶林FYL3 分钟前
【强化学习】2 大规模并行强化学习中的耦合策略优化:受控多样性驱动的样本高效探索
开发语言·php
chao1898444 分钟前
基于MATLAB的音频信号AM调制与解调实现
开发语言·matlab·音视频
雨落在了我的手上7 分钟前
初识java(八):数组的定义与使用
java·开发语言
贵州晓智信息科技7 分钟前
曼德勃罗集的 Three.js 实现
开发语言·javascript·ecmascript
xiaoshuaishuai88 分钟前
C# CUDA 到 OpenCL 迁移
开发语言·windows·c#
AI科技星8 分钟前
基于平行素数对等腰梯形网格拓扑的完备性证明哥德巴赫猜想1+1
c语言·开发语言·网络·量子计算·agi
聆风吟º9 分钟前
【C标准库】深入理解C语言 isdigit函数详解:判断字符是否为数字
c语言·开发语言·库函数·isdigit
故事和你9110 分钟前
洛谷-【图论2-4】连通性问题1
开发语言·数据结构·c++·算法·动态规划·图论