当前位置: 首页 > news >正文

C语言(3)—分支和循环

文章目录

  • 一、程序的基本结构
  • 二、分支结构
    • 1. if语句
    • 2. if-else语句
  • 三、关系与逻辑运算符
    • 1. 关系运算符
    • 2. 逻辑运算符
  • 四、条件运算符(三目运算符)
  • 五、switch语句
  • 六、循环结构
    • 1. while循环
    • 2. for循环
  • 七、循环控制语句
    • 1. break
    • 2. continue
  • 八、循环嵌套
  • 九、goto语句
  • 十、总结

一、程序的基本结构

C语言作为结构化程序设计语言,支持三种基本结构:

顺序结构:代码按顺序逐行执行选择结构:根据条件选择执行不同的代码块循环结构:重复执行某段代码直到满足特定条件

这些结构的组合可以解决几乎所有编程问题。

二、分支结构

1. if语句

if语句是最基本的选择结构,语法形式如下:

if (表达式) 语句;
#include <stdio.h>
int main() {int num = 0;scanf("%d", &num);if(num % 2 == 1)printf("%d 是奇数\n", num);return 0;
}

2. if-else语句

if (表达式)语句1;
else语句2;
#include <stdio.h>
int main() {int num = 0;scanf("%d", &num);if(num % 2 == 1)printf("%d 是奇数\n", num);elseprintf("%d 是偶数\n", num);return 0;
}

三、关系与逻辑运算符

1. 关系运算符

C语言提供6种关系运算符:

> 大于< 小于>= 大于等于<= 小于等于== 相等!= 不相等

注意:==(相等判断)与=(赋值)的区别,常见错误:

if (x = 3)  // 错误!将3赋值给x,表达式结果永远为真

2. 逻辑运算符

&& 逻辑与:两侧表达式都为真时结果为真|| 逻辑或:两侧至少一个为真时结果为真! 逻辑非:对表达式结果取反

示例:判断季节

int month = 0;
scanf("%d", &month);
if(month >= 3 && month <= 5) {printf("春季\n");
} else if(month == 12 || month == 1 || month == 2) {printf("冬季\n");
}

四、条件运算符(三目运算符)

语法:exp1 ? exp2 : exp3如果exp1为真,则整个表达式值为exp2,否则为exp3。

示例:求两数较大值

#include <stdio.h>
int main() {int a = 0, b = 0;scanf("%d %d", &a, &b);int m = a > b ? a : b;printf("%d\n", m);return 0;
}

五、switch语句

switch (expression) {case value1: statement; break;case value2: statement; break;default: statement;
}
注意事项:expression必须是整型表达式case后必须是整型常量每个case后通常需要break,否则会继续执行后续case

六、循环结构

1. while循环

while (表达式)语句;

2. for循环

for (表达式1; 表达式2; 表达式3)语句;

七、循环控制语句

1. break

#include <stdio.h>
int main() {for(int i = 1; i <= 10; i++) {if(i == 5) break;printf("%d ", i);}// 输出:1 2 3 4return 0;
}

2. continue

#include <stdio.h>
int main() {for(int i = 1; i <= 10; i++) {if(i == 5) continue;printf("%d ", i);}// 输出:1 2 3 4 6 7 8 9 10return 0;
}

八、循环嵌套

循环内可以包含其他循环,常用于处理多维问题。

示例:找出100-200之间的素数

#include <stdio.h>
int main() {for(int i = 100; i <= 200; i++) {int flag = 1; // 假设是素数for(int j = 2; j < i; j++) {if(i % j == 0) {flag = 0;break;}}if(flag) printf("%d ", i);}return 0;
}

九、goto语句

#include <stdio.h>
int main() {printf("hehe\n");goto next;printf("haha\n");next:printf("跳过了haha的打印\n");return 0;
}

十、总结

分支和循环是C语言编程的基础,掌握它们对编写高效、清晰的代码至关重要。本文详细介绍了:

各种分支结构(if、if-else、switch)的使用场景和注意事项三种循环结构(while、for、do-while)的特点和适用情况循环控制语句(break、continue)的正确使用

关系与逻辑运算符的运用技巧

通过大量实例代码,希望您能深入理解这些概念,并在实际编程中灵活运用。记住,良好的代码结构和适当的注释同样重要,这能使您的代码更易读、易维护。

编程练习建议:

尝试用不同循环结构实现相同功能,比较优缺点编写一个计算器程序,使用switch处理不同运算实现九九乘法表的打印编写程序判断用户输入的数字是否为回文数掌握这些基础知识后,您将能够处理更复杂的编程问题,为学习更高级的C语言特性打下坚实基础。

相关文章:

  • Java基础高频面试
  • Neowise Labs Contest 1 (Codeforces Round 1018, Div. 1 + Div. 2)
  • 前端权限管理
  • C语言学习之结构体
  • 《代码整洁之道》第9章 单元测试 - 笔记
  • 《代码整洁之道》第5章 格式 - 笔记
  • MRI学习笔记-conjunction analysis
  • docker(3) -- 图形界面
  • 驱动开发硬核特训 · Day 22(下篇): # 深入理解 Power-domain 框架:概念、功能与完整代码剖析
  • 《操作系统真象还原》第十章(1)——输入输出系统
  • 加密算法 AES、RSA、MD5、SM2 的对比分析与案例(AI)
  • 「Docker已死?」:基于Wasm容器的新型交付体系如何颠覆十二因素应用宣言
  • 2025.4.21-2025.4.26学习周报
  • 泰迪杯实战案例超深度解析:基于YOLOv5的农田害虫图像识别系统设计
  • 「Mac畅玩AIGC与多模态04」开发篇01 - 创建第一个 LLM 对话应用
  • 迷你世界UGC3.0脚本Wiki组件事件管理
  • 显存在哪里看 分享查看及优化方法
  • 分布式一致性算法起源思考与应用
  • 从“世界工厂”到“智造之都”:双运放如何改写东莞产业基因?
  • 云原生--核心组件-容器篇-5-Docker核心之-容器
  • 合肥一季度GDP为3003.88亿元,同比增长6.6%
  • 青年如何打破“千人一面”,创造属于自己的文化观?
  • 三部门提出17条举措,全力促进高校毕业生等青年就业创业
  • 还山记——走进山水、感受山水艺术的魅力
  • 研讨会丨明清区域史研究的比较与对话
  • 吃菜和吃肉,哪个更“增肌”?