C语言中的三大循环

C语言中为我们提供了三种循环语句,今天我就来与诸君细谈其中之奥妙。循环这一板块总结的内容较多,而且,很重要!(敲黑板!!!),所以诸君一定要对此上心,耐住性子学习循环,功在专久,而不在速。

大致分为:

(1)while 循环

(2)do-while 循环

(3)for 循环

一. while 循环

1.while 语句跟 i f 语句结构非常相似,表达结构大致一样,其不同点在于,i f 语句仅仅只执行一次,而我们的 while 语句可以实现循环的效果,while 语句循环大致如下:

2.while 循环的运用

这个没啥好说的,这里直接给大家上图举实例了哈

(1)逆序打印

这个逆序打印是什么意思呢?就是说将我们输入的内容按逆顺序打印出来,这里将给大家介绍到一个很重要的点,就是求数字的逆序,这个方法在很多时候都会用到:运用我们学过的运算符 / ,%来求出多位数的每一位

列如 1234 ,我们先将它 %10,就可以得到个位数4,再对它进行 /10,得到123,再将123%10得到十位的3,以此类推,我们就可以得到这个四位数的每一位,再对其进行打印即可,无需多言,咱们直接上图:

二. do-while 循环

  1. do-while 循环的语法形式

do-while 的执行方式较为特别,while 和 for 这两种循环都是先判断,条件如果满足就进入循环,执行循环语句,如果不满足就跳出循环,而do while循环则是先直接进入循环体,执行循环语句,然后再执行while 后的判断表达式,表达式为真,就会进行下一次,表达式为假,则不再继续循环

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

  1. do-while 语句的运用

这个同样我们来举一个打印0~10的例子:

三. for 循环

  1. for 循环的语法形式

for 循环都是老朋友了哈,在之前就已经屡次给诸君提到并且用到过,其表达形式是一个三目操作符,如f o r( exp1 ; exp2 ; exp3 ),其中,exp1用于循环变量的初始化,exp2用于循环结束条件的判断,exp3用于循环变量的调整

  1. for 循环的运用

这个话不多说,直接上图,诸君体会感受

for 循环很简单,直观也好理解,所以for循环也是三大循环中运用的最多的循环

(1)练习:打印素数

这个有关素数的练习我们之前也是做过的,这里再拿出来让大家练练手

(2)for 循环与 while 循环的比较
for 和 while 在实现循环的过程中都有 初始化、判断、调整 这三个部分,但是 for 循环的三个部分非常集中,便于代码的维护,而如果代码较多的时候 while 循环的三个部分就比较分散,所以从形式上 for 循环要更优一些

四. break 和 continue 语句

1.在我们执行循环的过程中,当我们遇到一些情况或者特别要求的时候,就需要我们提前终止循环,这时候怎么办呢?诸君莫慌,存在即合理,既然有这种情况,自然就有相对应的解决办法。这时候就得用上C语言中的两个关键字了------" break " 和 " continue "

(1)break用于永久终止循环,只要break被执行,就会直接跳出整个循环

(2)continue的作用是跳过本次循环在continue后的代码,其运用在 for 循环和 while 循环中有所差异

五. for 循环中的break和continue

(1)break:

(2)continue:

六. while 循环中的break和continue

(1)while 循环中的 break 跟 for 循环中一样,效果没有差异,这里我就不过多赘述了

(2)continue:这里的光标一直在闪烁,表示程序已经进入死循环了,这是为什么呢?是因为当我们 i == 7 时,执行 continue ,直接跳过了在 while 循环中 continue 后的所有语句,因此 i 没有用加 1 ,始终等于 7 ,则一直执行continue语句,程序进入死循环

七. do-while 循环中的 break 和 continue
do-while 语句中的 break 和 continue 的作用和 while 循环中的作用大致都是⼀模⼀样,诸君可以
自己实操体会,这里我就不过多赘述了

OKK,有关C语言中的三大循环:while 循环、do-while 循环、for 循环就给大家讲解到这里,这部分说实话都是我们的老朋友了哈,之前就给诸君提到过也运用过,所以相信大家能够轻松get到这个点。但诸君也切莫轻视,循环在C语言中是相当重要的一个板块。狮子搏兔尚以全力,注重每一个细节,打好基础,咱们才能走的更远嘛,与诸君共勉!!!

相关推荐
Yingye Zhu(HPXXZYY)3 小时前
ICPC 2023 Nanjing R L 题 Elevator
算法
坐吃山猪5 小时前
SpringBoot01-配置文件
java·开发语言
晚风(●•σ )5 小时前
C++语言程序设计——06 字符串
开发语言·c++
我叫汪枫5 小时前
《Java餐厅的待客之道:BIO, NIO, AIO三种服务模式的进化》
java·开发语言·nio
Nicole-----5 小时前
Python - Union联合类型注解
开发语言·python
晚云与城5 小时前
今日分享:C++ -- list 容器
开发语言·c++
兰雪簪轩6 小时前
分布式通信平台测试报告
开发语言·网络·c++·网络协议·测试报告
程序员Xu6 小时前
【LeetCode热题100道笔记】二叉树的右视图
笔记·算法·leetcode
FPGAI6 小时前
Qt编程之信号与槽
开发语言·qt
Swift社区7 小时前
从 JDK 1.8 切换到 JDK 21 时遇到 NoProviderFoundException 该如何解决?
java·开发语言