首页 > 其他分享 >C语言的循环语句

C语言的循环语句

时间:2024-10-30 18:18:55浏览次数:3  
标签:语句 C语言 break while 循环 执行 表达式

C语言中提供了三种循环语句:while、for、do....whille下面我们对这三种语句进行学习

1:while循环

1.1:if和while的区别

       语法:while(表达式)

                           语句

       乍一看,和前面分支语句中学的if语句是不是很相似下面我们通过代码看他们的区别

   发现if语句中只执行了一次,而while语句却在一直执行,这是因为if语句是当表达式为真时就执       行语句,而且执行完后代码是继续往下走的,而while语句是当表达式为真时,往下走执行语           句,在执行完语句后会返回到while的表达式又去判断表达式的真假,如果真就继续又进行这个       语句,直到表达式子的值为假,或者遇到break语句才结束循环,继续往下走。

1.2:while语句的执行流程

 

由上图所示:

程序会先对表达式进行判断,如果为假就结束,如果为真就执行语句,执行完语句就会又返回到表达式的位置重新对表达式进行判断,如此反复,直到表达式的值为0就会结束这个循环,或者在语句中遇到break语句也直接结束循环,当遇到continue的时候就会跳出本次循环执行下一次循环,即就回到判断表达式的位置。 

1.3:使用while语句的例子

例1:在屏幕上打印n以内的数

 例2:

         输⼊⼀个正的整数,逆序打印这个整数的每⼀位

         例如: 输⼊:1234,输出:4 3 2 1

                     输⼊:521,输出:1 2 5

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

 然后再使用除法除与10再赋值回给原来的变量就可以把低位的数给去除掉如上:1234/10=123;

 四位数就得进行四次这样的循环然后就发现n就变成了0这样刚刚好就可以结束这个循环了。

2:for循环

        for循环是三种循环中使用最多的。下面我们就对for进行学习

2.1:for循环语句的语法

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

       语句//如果需要执行多条语句就用大括号包含这些语句

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

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

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

2.2:for循环的执行流程

        

       表达式1用来初始化变量,表达式2用来判断真假,真就执行语句,假的则循环结束,执行完           语句后就再到表达式3,通过表达式3来调节循环变量,然后再去表达式2判断是否满足条件,         从而决定循环是否继续。会发现整个循环过程中表达式1只会执行1次。

2.3:for循环的实践

       例1:在屏幕上打印n以内的数

      

2.4:while循环和for循环的区别

会发现while循环和for循环中都有初始化、判断、调整这三部分,但是while的三个语句就比较分散,for循环的就集中在一起,当代码量大起来后,for循环就便于代码的维护,所以在代码阅读和代码维护上for循环体验感会好很多。

2.5:for循环的练习 

        练习1:计算1~100之间3的倍数的和

3:do.....while循环 

         在三种循环里do.....while循环是使用的最少的.

 3.1:do.....while循环的语法

        do

              语句

       while(表达式);

      while循环和for循环都是先进行判断,如果条件满足才开始执行语句,不满足则结束循环

      而do...while循环是先进入循环体,执行一次语句后,再执行while的表达式进行判断,表达式          为真则会进行下一次,假就跳出循环

3.2:do...while循环的执行流程    

 通过上图可以看出do....while循环先执行语句,,执行完语句后再进行表达式的判断

 如果表达式的值为真,那么就继续循环执行语句,表达式为假则结束循环。

 可以看出其与前面的while循环和for循环的区别就是,不过表达式是啥样的循环体都会执行一次

3.3:do....while循环的实例

       例:在屏幕上打印n及n以内的数

3.4:do....while循环的练习

         输⼊⼀个正整数,计算这个整数是⼏位数?

         例如: 

                   输⼊:1234  输出:4

                   输⼊:12      输出:2

 

4:break和continue语句 

         在循环执行的过程中,我们会遇到一些情况需要循环结束的,比如找一个数找到了这个循环           也应该结束,这在我们生活中也是很常见的情况,在C语言中提供了break和continue两个关           键字在循环中进行使用

4.1while中break和continue

        break:

        break的作用是用于永久跳出循环,只要执行break语句直接会跳出循环,执行后面的语句

       

             如上面的代码所示,当i加到5后就满足if语句的条件执行了break语句后就结束了循环

         continue:

         是继续的意思,在循环中的作⽤就是跳过本次循环中 continue 后边的代码,继续进⾏ 下⼀             次循环的判断。对上面的代码把break换成continue看看什么效果。

 

这里就陷入了死循环当i=5后,语句是直接跳出本次循环然后再进判断,这样就直接把i++这个语句跳过了,那么此时i还是5所以陷入了死循环。

  

 将上面的代码修改一下,,将调整的表达式移动到前面虽然不会陷入死循环,但是打印的数的开   头发生了变化。

4.2:for中break和continue

    break:

可以发现在for中的break和while中的效果是一样的,直接结束循环 

continue:

   

可以看到代码当i=5的时候就执行continue语句,就跳出了本次循环,没有往下执行打印的那个语句,然后回到了调整的表达式,然后再回到判断表达。

do...while循环中和while中的是一样的所以就不做过多的说明了

5:循环的嵌套 

        通过前面的我们也对三个循环有了一定的理解了,在日常解决问题中,这三种循环往往嵌套            在一起才可以更好的解决问题。我们通过下面的练习来感受一下。

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

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

题目分析:

             1:  首先产生100~200的数,所以我们通过一个循环产生100~200的数

             2:然后使用2至i-1的数去对i做除法运算,这里需要产生2~i-1之间的数字也可以通过循环                    来实现

             3:如果在2~i-1之间有数可以使得其整除那么就不是素数,反之则是

 

6:goto语句

        C语言中提供的一种特殊的语法,是一种跳转语句和跳转标号,其可以实现在同一个函数内

        跳转到设置好的标点处

        

可以看到代码在遇到goto语句后就会跳转到标点处

在多层循环中需要快速跳出循环的地方使用会比break语句要快。 

标签:语句,C语言,break,while,循环,执行,表达式
From: https://blog.csdn.net/2302_81083101/article/details/143326294

相关文章

  • C语言判断单链表是否相交
    ////CreatedbyAdministratoron2024/10/29.//#ifndefLINK_H#defineLINK_H/***链表的结构体*/typedefstructLink{intelement;structLink*next;}link;#endif//LINK_H////判断单链表是否相交//CreatedbyAdministratoron2024/10/30......
  • 实验3_C语言函数应用编程
    task1:输入分数,返回等级有问题。当输入高于E等级对应的分数时,函数返回值将是从该等级到E等级全部等级,如输入9将返回BCDE。 #include<stdio.h>charscore_to_grade(intscore);//函数声明intmain(){intscore;chargrade;while(scanf("%d",&score)!......
  • SQL注入语句笔记(很全,持续更新ing)
    SQL注入原理:1.参数用户可控化:前端传递给后端的参数是用户可以控制的2.参数带入数据库查询:传入的参数拼接到SQL语句,且带入数据库查询sql注入常用知识:1.information_schema:表示所有信息,包括库、表、列2.information_schema.tables:记录所有表名信息的表3.information_sch......
  • 关于我、重生到500年前凭借C语言改变世界科技vlog.12——深入理解指针(2)
    文章目录1.数组名与地址1.1arr1.2sizeof(arr)1.3&arr2.指针访问数组3.一维数组传参本质4.指针数组5.二级指针希望读者们多多三连支持小编会继续更新你们的鼓励就是我前进的动力!1.数组名与地址有这么一个数组,数组名为arrintarr[10]={1,2,3,4,5,6,7,8,9}int......
  • “山林不向四季起誓,荣枯随缘”——C语言(爱心+祝福语)代码分享
                    在数字的海洋中,代码是我们共舞的音符。它们跳跃、旋转,编织出一个个美丽的故事。        每一行代码,都像是精心挑选的词汇,构建起我们共同的语言。        在这个由0和1构成的世界,我们用逻辑与情感交织,创造出无数可能。  ......
  • goto语句(C语言)
    一.C语言中的goto语句概念在C语言中,goto是一条无条件跳转语句,它允许程序控制流跳转到同一函数内的某个特定标签处继续执行。使用goto语句时,需要在目标位置定义一个标签,标签由一个标识符后跟一个冒号(:)组成。goto语句的基本形式如下:gotolabel;随后的代码中,如果执行到goto语......
  • switch多分支语句及其相关概念详解
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言在实际生活中,我们常常要面对多种多样的选择,如果要用编程来解决这些问题,我们就可以用选择语句来解决问题。通常我们遇到这类问题......
  • C语言顺序表(类似数组结构)
    ////CreatedbyAdministratoron2024/10/25.//顺序表结构//#ifndefORDER_TABLE_H#defineORDER_TABLE_H/*声明顺序表的长度*/#defineSize5/***声明顺序表结构体*/typedefstructTable{int*head;intlength;intsize;}table;/***......
  • C语言链表
    ////CreatedbyAdministratoron2024/10/29.//#ifndefLINK_H#defineLINK_H/***链表的结构体*/typedefstructLink{intelement;structLink*next;}link;#endif//LINK_H////链表//CreatedbyAdministratoron2024/10/28.//#pragmao......
  • C语言链表反转的四种方法
    ////CreatedbyAdministratoron2024/10/29.//#ifndefLINK_H#defineLINK_H/***链表的结构体*/typedefstructLink{intelement;structLink*next;}link;#endif//LINK_H////四种链表反转算法//CreatedbyAdministratoron2024/10/29.......