while循环 for循环 do while循环 break和continue语句 循环嵌套 goto语句

引言:一年12个月 一周七天 周而复始 在使用C语言与电脑“沟通”的过程中 如果想要让电脑循环执行某些语句 那就要用到今天的循环语句

1.while循环

de0daaca41a04f2ca921264a4dd25332.png

上图是while循环的结构 while循环与IF语句十分相似 都是通过表达式的真假来决定是否执行所包含的语句 同样 如果想要while循环执行更多语句 只需要加上大括号即可

 让我们用一个例题来感受while语句

a9bd60462b6d474188b08f2011bf4110.png

上图代码的目的是在屏幕上打印1-10的值 表达式为i≤10 如果条件成立 则执行while所包含的语句 也就是打印i 并且让i加1 这样每执行一次循环 就会打印i的值并且让i加1从而打印1-10的数字 当i>10后 条件不成立 则循环结束

 

2.for循环

babd7817a4eb44c8b5b87fd90cd969a8.png

上图为for循环的结构 for循环在三个循环语句中是使用最多的循环 for循环与while循环差别不大 所以我们利用上面的例题结合解释比较好理解

表达式1 用于循环变量的初始化 

 3ded2369c30342a499014786c3f32fd5.png

表达式1的作用就如上图 在上方while语句的例题中 i就是循环变量 while 通过i的值来判断是否执行语句 所以我们要先初始化循环变量 也就是赋予i一个初始值

表达式2 用于循环结束条件的判断

51b792c2c30c4037a0129982fb154f83.png 

在例题中 如果i满足≤10 就会进入while循环  在for循环中 表达式2就是起到判断是否进入循环的作用

表达式3 用于循环变量的调整

6a929b4494ab4e2c9279ebe8ad402423.png

循环不可能一直下去 所以我们需要让循环变量的值在经过每一次循环后改变 这样才能让循环停止 在例题中 每一次循环过后都会让i的值加1 这样i就会越来越靠近10 直到超过10 循环停止 在for循环中 表达式3的作用就是改变循环变量

总结:在for循环中 先用表达式1来初始化循环变量 然后根据表达式2判断是否进入循环 循环经历一次后通过表达式3调整循环变量 再通过表达式2的值判断是否进入循环 直到不符合条件退出循环为止 自始至终表达式1只在开始执行一次 

下面我们用一个例题来感受for循环

88fe08ac61a146da8933e417ec48cd26.png

 上图代码的目的依旧是在屏幕上打印1-10的值

首先初始化i的值为1 然后通过表达式2判断 如果成立就执行语句 也就是打印i 打印过后再通过表达式3改变i即让i加1 然后再通过表达式2判断 周而复始直到i>10 循环结束

让我们再用一个例子来感受for循环

2f9f50b022914fdf8e975d3febc773b4.png

上图代码的目的是计算1-100之间3的倍数的数字之和

程序的逻辑是 使用for循环来判断1-100的每一个数字是否为三的倍数 如果是则相加 最后打印和

首先通过for循环让1-100的每一个数字都判断一遍 如果是3的倍数 就通过创建的变量sum来积累和

注:%是取模的意思 得到的是相除之后的余数

+=的意思是sum本身加上i   sum+= i变化一下就是 sum=sum+i

3. do while循环

ca79f3af7ebb4d4e87c4166a385da70b.png

上图为do while 循环的结构 do while循环跟上面两个循环语句的区别是它会先执行一次语句 不管是否符合表达式 执行第一次之后 就跟while语句再无区别 

看下面的例子

9bcdb612063140da8a35c83d9b663955.png

依旧是打印1-10的值 根据上面的区别陈述可知 在该程序中 程序会先打印一次i并且让i加1 然后再通过表达式的值判断是否执行下一次循环 do while循环使用较少

4. break 和 continue语句

9b8d334898bf4409a2f50fedd532fb82.png

break语句在之前写的 switch语句中提到过 在循环语句中的作用也差不多 上图为两个语句的解释

4.1 while循环中的break 和continue

4.1.1 break举例

943cb502f388453eb7de82e0c4624e9e.png 

在上图中 根据IF语句可知 如果i等于5就会触发break语句  首先初始化i为1  i≤10所以进入循环 i不等于5则不执行break语句 然后照常打印i并且让i加1然后再经历循环  这样循环在经历4次循环后 i变成了5 满足IF语句的触发条件 则执行break语句 直接让循环终止 这就是break语句的作用 所以上面代码的结果就是打印1 2 3 4 然后结束

4.1.2  continue举例

dbc57945e0164f2eb814c2db5e6af4bd.png

相同的代码中 如果把break语句换成continue语句会有什么变化呢

首先程序运行逻辑跟之前一样 当i等于5时执行continue语句 在上面的解释说明 continue语句会跳过循环中continue之后的代码 直接回到开始判断表达式的流程

326c24d200dd46c0a21324f17739f18a.png 

这是while所包含的语句

9e91a4f2d5ec43bc8b42687f95e0494f.png 

 这是continue之后的语句

所以当i等于5是 程序会跳过这两条语句回到开头 由于改变i的语句被跳过了 导致i一直为5 导致程序陷入死循环 这就是continue语句的作用 例题只是感受一下continue的作用 我们不能这样用哦

4.2 for循环中的break 和 continue语句

break在for循环和while循环中的作用基本一直

4.2.1 break例题

e76f4153b3cc4519acb36a23b8de5b3d.png

 break语句的用法基本相同 这里不过多解释 大家感受一下就好

4.2.2 continue例题

a1516c52a2e848d585e2d4d51718b5ea.png

continue在while 和for中 有一点区别 这也是因为while和for的语法结构的差异

在之前while中的 continue的例题中 continue的执行导致i的值无法变化导致程序进入死循环 但在for循环中 当i等于5时执行continue语句 从而导致跳过了printf语句 但是会继续执行表达式3让i+1 因为在while循环中 循环变量的调整作为一条语句包括在while中 而在for循环中 循环变量的调整是用表达式3来执行 并非通过语句执行 所以continue语句在for循环中 不会影响表达式3的执行 这就是continue语句在while 循环和for 循环的差别

注:在do while中 break语句和 continue语句的用法与while语句一模一样 大家可以自行测试并体会

5. 循环嵌套

如同IF语句可以嵌套一样 循环语句也可以嵌套 三种循环可以互相嵌套 使用得当才能更好的解决问题

下面给大家展示一个例题

fc21825375f54c38afe95e479745b9fd.png

 上图为题目要求

a06d1d8193ab488bb93adc0ee5ef6cf9.png

 上图为逻辑分析

e3465a12b4b84c9c80b5db2cc3f8c1e5.png

 上图为题目解决代码

首先用循环变量i产生100-200之间的数字 然后进入循环把每个数都判断一遍是否为素数 如果是 则打印

该代码是在for循环中嵌套了一个for循环 里面嵌套的for循环的作用是判断i是否为素数 循环变量为j 该代码先创建变量flag并初始化为1  在循环变量为j的for循环中 如果IF语句成立 证明在2~(i-1)之间有数字能整除i 则说明i不是素数 执行IF语句把flag改为0那在出循环后 根据IF语句的判断 就不会打印i 如果在里面的for循环结束后 都找不到一个数能整除i 说明i是素数 flag则一直为1 就会打印i 这就是代码的逻辑 根据循环嵌套来解决问题

6. goto语句

goto语句 顾名思义就是“去到”的意思 在代码中的作用就是从一个语句跳到另外一个语句

e3376d80c01247cb8514ecb0e171179a.png

如上图 next 就是我们为goto语句创造的入口 程序会直接跳过goto下面的语句 执行next入口之后的语句 所以在上面的代码中 程序不会打印haha 走到goto并执行后会直接进入next入口从而打印“跳过了haha的打印”

goto语句尽量少用 使用不当可能导致打乱代码的执行流程 但在多次循环嵌套的代码中 想要直接跳出所有循环 则可以使用goto语句比较方便

结束

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值