首页 > 其他分享 >【C语言】分支与循环(下)

【C语言】分支与循环(下)

时间:2024-06-10 17:05:31浏览次数:19  
标签:语句 continue C语言 break while 循环 表达式 分支

 目录 

6.  while 循环

7.  for 循环

8.  do-while 循环

9.  break 和 continue 循环

10.  循环的嵌套

11.  goto 语句


正文开始——

6.  while 循环  

C语言提供了三种循环,while 就是其中一种。

while 语句的语法结构与 if 语句非常相似。

6.1  if 和 while 的对比  

1  if(表达式)

2         语句;

4  while(表达式)

5                语句;// 如果循环体想要更多的语句,可以加上大括号

对比一下,上代码!

while 语句是实现可以循环的效果。

6.2  while 语句的执行流程  

【重点】

首先是执行判断表达式,表达式的值为0,循环直接结束;表达式的值不为0,则执行循环语句,语句执行之后再继续判断,是否进行下一次循环。

6.3  while 循环的实践  

练习:在屏幕上打印 1~10 的值

6.4  练习  

题目:输入一个正的整数,逆序打印这个整数的每一位

例如,输入: 123,输出: 321

解析:对这个原整数取余得到末位;

           对原整数 /10 后再取余得到倒数第二位;

           循环以上步骤,直至 while 后面的数为0。

7.  for 循环  

7.1  语法形式  

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

2           语句;// 如果循环体想包含更多的语句,可以加上大括号

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

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

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

7.2  for 循环的执行流程  

【重点】

执行表达式1初始化循环变量——>执行表达式2的判断部分,表达式2的结果如果是0,则循环结束,非0,则执行循环语句,循环语句结束之后——>执行表达式3,调整循环变量——>再去判断表达式2,看表达式2的结果,决定循环是否继续。

整个循环过程中,表达式1初始化部分只被执行一次,剩下的就是表达式2、循环语句、表达式3在循环。(留意,后面会用)

7.3  for 循环的实践  

题目:在屏幕上打印1~10的值

7.4  while 循环和 for 循环的对比  

【对比】

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

7.5  练习  

题目:计算1~100之间3的倍数的数字之和

8.  do-while 循环  

8.1  语法形式  

在循环语句中 do-while 循环使用最少。

1   do

2          语句;

3   while(表达式);

【重点】

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

8.2  do-while 循环的执行流程  

【重点】

do-while 循环中先执行 do 后的语句,执行完语句,再去执行判断表达式,判断表达式的结果是!=0,则继续循环,执行循环语句;判断表达式的结果==0,则循环结束。

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

8.3  do-while 循环的实例  

题目:在屏幕上打印1~10的值

一般 do-while 使用在循环体至少被执行一次的情况下,所以较少一些。

8.4  练习  

题目:输入一个正整数,计算这个整数是几位数?

例如,输入:1234,输出:4

这里并非必须使用 do-while 语句,但是这个代码就比较适合使用 do-while 循环,因为 n 即使是0,也是1位数,要统计位数的。

9.  break 和 continue 语句  

9.1  break 和 continue 举例  

9.1.1  break 举例  

如结果显示,打印到5就停止了,不再打印,终止循环了。

所以 break 的作用就是永久的终止循环,只要 break 被执行,break 外的第一层循环就终止了。那以后我们在循环中,想在某种情况下终止循环,则可以使用 break 来完成我们想要达到的效果。

9.1.2  continue 举例  

continue 是继续的意思,在循环中的作用就是跳过本次循环中 continue 后边的代码,继续进行下一次循环的判断。

上面代码中,把 break 换成 continue 会是什么样的效果呢?

当 i =5 后,就执行 continue ,直接跳过 continue 的代码,去循环的判断的地方,因为跳过了 i++,所以 i 就一直为5,程序进入死循环。

【重点】

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

9.2  for循环中的 break 和 continue  

9.2.1  break 举例  

其实和 while 循环中的 break 一样,for 循环中的 break 也是用来终止循环的,不管循环还需要循环多少次,只要执行到了 break ,循环就彻底终止,上代码:

break 的作用是永久的终止循环,未来我们在某个条件发生的时候,不想再继续循环的时候,就可以使用 break 来达到我们想要的效果。

9.2.2  continue 举例  

上面的代码我们把 break 换成 continue 会怎样?

在 for 循环中 continue 的作用是跳过本次循环中的 continue 后的代码,直接跳到循环的调整部分。 

9.3  do-while循环中的break和continue  

10.  循环的嵌套  

前面学习了三种循环,for、while、do-while,这三种循环嵌套在一起才能更好地解决问题,也就是循环嵌套。

10.1  练习  

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

10.2  题目解析  

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

10.3  参考代码  

11.  goto 语句   

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

例如:

【注意】

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

1   for(...)

2   {

3          for(...)

4          {

5                 for(...)

6                 {

7                          if(disaster)

8                                  goto error;

9                  }

10         }

11   } 

12

13   error:

14            //

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


完——

Whataya Want from Me

Whataya Want from Me_Adam Lambert_高音质在线试听_Whataya Want from Me歌词|歌曲下载_酷狗音乐酷狗音乐为您提供由Adam Lambert演唱的高清音质无损Whataya Want from Memp3在线听,听Whataya Want from Me,只来酷狗音乐!icon-default.png?t=N7T8https://t4.kugou.com/song.html?id=4p1eBe7COV2


What do you want to be ?

只要你有百分之十甚至百分之一的念头,那就要用百分之一百二的努力去实现它。 

让我们一起携手同行,未来掌握在我们手中,加油! 

祝各位端午节快乐!

标签:语句,continue,C语言,break,while,循环,表达式,分支
From: https://blog.csdn.net/lrq13965748542/article/details/139569971

相关文章

  • 算法 | 剪枝函数以及几种形式&回溯法和分支限界法的区别&算法特性&分支限界法的思想&
    whatis剪枝函数?是对该问题能否得到最优解或者可行解的约束限界函数:最优解约束函数:可行解回溯法和分支限界法的区别:异:回溯法分支限界法一次生成/扩展一个结点一次生成所有的孩子结点BFSDFS/最小耗费优先找到所有解找到最优解同:均需要定义解空间,解空间的组织结构一般......
  • c语言——字符函数与字符串函数
    文章目录一字符函数(1)字符分类函数:(2)字符转换函数:二字符串函数(1)strlen函数的使用与模拟(2)strcpy函数的使用与模拟(3)strcmp函数的使用与模拟(4)strcat函数的使用与模拟两组函数的区别:(5)strncpy函数(6)strncmp函数的使用(7)strncat函数的使用(8)strstr函数的使用与模拟(9)strtok函数......
  • 【C语言】写一个宏,可以将一个整数的二进制位的奇数位和偶数位交换
    思路:10的二进制是00000000000000000000000000001010,然后交换奇数位和偶数位那么就是第一位和第二位交换,第三位和第四位交换,以此类推解题步骤:(1)将00000000000000000000000000001010的奇数位保留,偶数位变为0则变成00000000000000000000000000000000(2)将00000000000000000000......
  • C语言 & 图形化界面方式连接MySQL【C/C++】【图形化界面组件分享】
      博客主页:花果山~程序猿-CSDN博客文章分栏:MySQL之旅_花果山~程序猿的博客-CSDN博客关注我一起学习,一起进步,一起探索编程的无限可能吧!让我们一起努力,一起成长!目录一.配置开发环境 二,接口介绍1.mysql_init2.mysql_real_connect3.mysql_query4.对select结果分析......
  • 线程池原理及c语言实现线程池
    线程池线程池是一种多线程处理机制,其主要目的是提高系统资源利用率、降低系统资源消耗,并通过控制并发线程数量来优化性能。以下是关于线程池的详细解释:定义:线程池是一种线程使用模式,它维护着一组线程,这些线程等待监督管理者分配可并发执行的任务。通过将任务添加到队列中,并......
  • 【C语言】宏offsetof的模拟实现(计算结构体中某变量相对于首地址的偏移)
    首先我们应该特别留意:offsetof是一个宏,并非是一个函数!宏offsetof的介绍:参数:第一个是结构体类型名称,第二个是结构体成员名返回类型:size_t无符号整形引用的头文件:<stddef.h>offsetof的使用举列:#include<stddef.h>structStu//注释为相对于起始位置的偏移量{......
  • C语言——使用函数创建动态内存
    一、堆和栈的区别1)栈(Stack):栈是一种自动分配和释放内存的数据结构,存储函数的参数值、局部变量的值等。栈的特点是后进先出,即最后进入的数据最先出来,类似于我们堆盘子一样。栈的大小和生命周期是由系统自动管理的,不需要程序员手动释放。2)堆(Heap):堆是由程序员手动分配和释......
  • 初始C语言——结构化算法的结构
    C语言程序是一种程序化程序,也就是说,可以用C语言程序来解决的问题,都可以分解成相互独立的几个部分,每个部分都可以通过简单的语句或结构来实现。一般而言,对于结构化的程序,一个完整的算法可以用“顺序结构”,“分支结构”和“循环结构”的有机组合来表示。(一)----------顺序结构......
  • 实验6 C语言结构体、枚举应用编程
    4.实验任务41#include<stdio.h>2#defineN1034typedefstruct{5charisbn[20];6charname[80];7charauthor[80];8doublesales_price;9intsales_count;10}Book;1112voidoutput(Bookx[],int);13voidsort(Bo......
  • python-10-数据处理得学:while+for循环搭配使用,排查数据和除重
    学习内容:《python编程:从入门到实践》第二版知识点:whilefor循环搭配使用,利用while排查数据,删除重复选项练习内容:练习7-8:熟食店创建一个名为sandwich_orders的列表,在其中包含各种三明治的名字,再创建一个名为finished_sandwiches的空列表。遍历列表sandwich_orders,对于其中......