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

3.分支与循环

1.关系操作符

关系操作符不宜连用

i<j<k

相当于(i<j)<k,i先和j比较大小,为真返回1,为假返回0,0或1再与k比较。

正确写法为

i<j&&j<k

2.三目操作符

exp1 ? exp2 : exp3

条件操作符的计算逻辑是:如果 exp1 为真, exp2 计算,计算的结果是整个表达式的结果;如果 exp1 为假, exp3 计算,计算的结果是整个表达式的结果。

3.逗号表达式

int a=(a=3,a+3,b=c*3,c+2*a+b)

逗号表达式会从左到右依次计算,但是整个表达式的结果是最后一个表达式的结果

4.逻辑操作符:&& , || , !

• ! :逻辑取反运算符(改变单个表达式的真假)。

• && :逻辑与运算符,就是并且的意思(两侧的表达式都为真,则为真,否则为假)。

• || :逻辑或运算符,就是或者的意思(两侧至少有一个表达式为真,则为真,否则为假)

if((year%4==0 && year%100!=0) || (year%400==0)

判断一个年份是否是闰年的代码。

• 如果左边的表达式满足逻辑运算符的条件,就不再对右边的表达式求值。这种情况称为“短路”

&&:左边为0,右边不执行。

|| :左边为真,右边不执行。

5.switch 语句

switch (expression)

{ case value1: statement

case value2: statement

default: statement }

• switch 后的 expression 必须是整型表达式

• case 后的值,必须是整形常量表达式,字符

•每一个case语句执行完成后,需要加上break,才能跳出switch语句,否则会依次向后执行

6.while循环

输入一个正的整数,逆序打印这个整数的每一位 例如: 输入:1234,输出:4 3 2 1 输入:521,输出:1 2 5

题目解析

1. 要想得到n的最低位,可以使用n%10的运算,得到的余数就是最低位,如:1234%10得到4

2. 要想去掉n的最低位,找出倒数第二位,则使用 n=n/10 操作就可以去掉最低位的,如: n=1234/10得到123,123相较于1234就去掉了最低位,123%10就得到倒数第二位3。

3. 循环1和2两个步骤,在n变成0之前,就能到所有的位。

参考代码:

#include <stdio.h> int main() { int n = 0; scanf("%d", &n); while(n) { printf("%d ", n%10); n /= 10; } return 0; }

7. for循环

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

语句;

1初始化,2判断,3调整

整个循环的过程中,表达式1初始化部分只被执行1次,剩下的就是表达式2、循环语句、表达式3在循环。

8. do-while 循环

do

语句;

while(表达式);

do while 语句中循环体是至少执行一次的,这是 do while 循环比较特殊的地方

9. break和continue语句

• break 的作用是用于永久的终止循环,只要 break 被执行,直接就会跳出循环,继续往后执行。

• continue 的作用是跳过本次循环中 continue 后边的代码,在 for 循环和 while 循环中有 所差异的

9.1 while循环中的continue

continue 可以帮助我们跳过某一次循环 continue 后边的代码,直接 到循环的判断部分,进行下一次循环的判断,如果循环的调整是在 continue 后边的话,可能会造成死循环

9.2 for循环中的continue

for 循环中 continue 的作用是跳过本次循环中 continue 后的代码,直接去到循环的调 整部分。未来当某个条件发生的时候,本次循环无需再执行后续某些操作的时候,就可以使用 continue 来实现

10. 练习

找出100~200之间的素数,并打印在屏幕上。

注:素数又称质数,只能被1和本身整除的数字。

题目解析:

1. 要从100~200之间找出素数,首先得有100~200之间的数,这里可以使用循环解决。

2. 假设要判断i是否为素数,需要拿2~i-1之间的数字去试除i,需要产生2~i-1之间的数字,也可以使用 循环解决。

3. 如果2~i-1之间有数字能整除i,则i不是素数,如果都不能整除,则i是素数。

#include <stdio.h> int main() { int i = 0; //循环产生100~200的数字 for(i=100; i<=200; i++) { //判断i是否为素数 //循环产生2~i-1之间的数字 int j = 0; int flag = 1;//假设i是素数 for(j=2; j<i; j++) { if(i % j == 0) { flag = 0; break; } } if(flag == 1) printf("%d ", i); } return 0; }

11. goto 语句

C语言提供了一种非常特别的语法,就是 goto 语句和跳转标号, goto 语句可以实现在同一个函数内跳转到设置好的标号处

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

goto 语句如果使用的不当,就会导致在函数内部随意乱跳转,打乱程序的执行流程,所以我们的建 议是能不用尽量不去使用;但是 goto 语句也不是一无是处,在多层循环的代码中,如果想快速跳出 使用 goto 就非常的方便了。

本来 for 循环想提前退出得使用 break ,一个 break 只能跳出一层 for 循环,如果3层循环嵌套 就得使用3个 break 才能跳出循环,所以在这种情况下我们使用 goto 语句就会更加的快捷。

http://www.jsqmd.com/news/1176212/

相关文章:

  • 2026年7月深圳工地电柜回收多少钱 工程剩余物资快速清场方案 - 广东再生资源回收
  • 如何高效开发电商应用?Saleor Platform开发者工具与工作流详解
  • SmartPack-Kernel-Manager备份与恢复:保护你的内核设置不丢失
  • 如何迁移Nix配置?nix-config项目迁移背后的原因与步骤详解
  • 2026年7月广州发电机回收价格表 最新报价和回收方案 - 广东再生资源回收
  • 5步精通BilibiliDown:解锁B站视频离线管理的完整解决方案
  • 2026年怎么把聊天记录截图拼起来?亲测好用的免费拼接方法 - 效率工具研究所
  • Synfig Studio:免费开源2D动画软件终极入门指南
  • 零基础转数据分析,应该先学什么?Excel、SQL、Python怎么排顺序
  • 工业上位机项目的完整 MediatR 管道行为(Pipeline Behaviors)示例代码
  • Awesome Wails中的API工具集合:从Mock服务器到gRPC客户端
  • Arm Optimized Routines开发者指南:如何为ARM架构贡献优化代码
  • FastAsyncWorldEdit 开发者API指南:如何编写高性能的异步世界编辑插件?
  • 【Linux】一文吃透 ext2 文件系统:从磁盘块组、inode 到挂载完整拆解!
  • 2026 北京专业摄影学校综合排行榜,北京摄影学校推荐 - 职业学校推荐官
  • 3 款主流 CAN 分析工具对比:BUSMASTER vs PCAN-View vs TSMaster 功能实测
  • 亲身探访南京萧官方售后服务中心|地址与客户服务热线(2026年7月最新) - 亨得利官方服务中心
  • 广州小区配电房高压电力电缆回收报价 2026年7月电力版 高压电工持证 - 广东再生资源回收
  • 把材料练透,而非刷新材料:Echo Loop 英语听说训练 App 深度解析
  • HAMi异构计算虚拟化架构:技术决策框架与系统设计深度解析
  • 2026年7月广州电柜回收价格表 整厂设备打包回收一站式 - 广东再生资源回收
  • 2026年7月广州工程剩余变压器怎么处理 临建物资当天上门回收 - 广东再生资源回收
  • 涉外公证银行流水翻译怎么办理 - 点办通
  • Skinny ORM详解:基于ScalikeJDBC的高效数据库操作指南
  • Hacknight Beijing:基于阿里云与 Elastic 构建 AI Agents
  • FastAPI Contrib分页解决方案:Limit-Offset Pagination依赖注入的完整实现
  • 2026年7月南京峰云汇互邦圈介绍|南京本地企业家资源对接与经贸集采服务平台 - 资讯快报
  • 亨得利官方名表服务中心|全新维修地址与售后热线权威信息通知(2026年7月更新) - 亨得利官方博客
  • 深圳小区配电房高压电力电缆回收报价 2026年7月电力版 高压电工持证 - 广东再生资源回收
  • 欧米茄中国官方售后服务中心|网点地址与售后服务热线权威信息通告(2026年7月最新) - 欧米茄服务中心