当前位置: 首页 > 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语言特性打下坚实基础。
http://www.xdnf.cn/news/179749.html

相关文章:

  • WinForm真入门(18)——DateTimePicker‌控件解析
  • 13.组合模式:思考与解读
  • MCP实战-本地MCP Server + Client实战
  • 创建一个开机自启的服务
  • 题海拾贝:P2858 [USACO06FEB] Treats for the Cows G/S
  • 大模型图像编辑那家强?
  • 多模态常见面试题
  • 新魔百和CM311-5_CH/YST/ZG代工_GK6323V100C_2+8G蓝牙版_强刷卡刷固件包(可救砖)
  • SpringMVC 前后端数据交互 中文乱码
  • 【深度剖析】贵州茅台的数字化转型(2025)(上篇)
  • 第7章 内部类与异常类
  • 【蓝桥杯省赛真题57】Scratch穿越病毒区 蓝桥杯scratch图形化编程 中小学生蓝桥杯省赛真题讲解
  • Vue.js 核心特性解析:响应式原理与组合式API实践
  • 论文检索相关网站
  • ‌RISC-V架构的低功耗MCU多电压域优化设计
  • final static 中是什么final static联合使用呢
  • 【算法刷题】
  • MySQL 8.0 忘记登录密码 mysqld --init-file重置
  • AG32 MCU系列三合一芯片,MCU+ 2K cpld + 64Mbit PSRAM,一颗芯片同时满足多种需求。
  • 清华团队提出时序聚类数据库内高效方案,已被SIGMOD 2025接收
  • 【Tools】chezmoi 跨多台不同的机器管理 dotfiles 的工具
  • 缓存并发更新的挑战
  • Python生活手册-元组:保险柜与瑞士军刀
  • 基于javaweb的SpringBoot新闻发布系统设计与实现(源码+文档+部署讲解)
  • 业务中台与数据中台:企业数字化转型的核心引擎
  • 解决qnn htp 后端不支持boolean 数据类型的方法。
  • C语言-- 深入理解指针(4)
  • 学习spark总结
  • 基于SSM的“融资租赁管理系统”的设计与实现(源码+数据库+文档)
  • QT开发技术【QChart添加跟随鼠标的十字线】