首页 > 其他分享 >分支和循环(下)

分支和循环(下)

时间:2024-07-02 21:02:59浏览次数:3  
标签:语句 continue int while 循环 表达式 分支

文章目录


前言

在上一期我们讨论的C语言的分支结构(☞分支和循环(上)),本文将继续讲解C语言的另一种结构——循环结构。


一、while循环

C语言提供了3种循环语句, while 就是其中一种,接下来就介绍一下 while 语句。
while 语句的语法结构和 if 语句非常相似。

while(表达式)
语句;

首先上来就是执行判断表达式,表达式的值为0,循环直接结束;表达式的值不为0,则执行循环语句,语句执行完后再继续判断,是否进行下一次判断。
为了进一步理解,给出一个例子:

在屏幕上打印1~10的值

参考代码:

int main()
{
 int i = 1;
 while(i<=10)
 {
 printf("%d ", i);
 i = i+1;
 }
 return 0;
}

二、for循环

for 循环是三种循环中使用最多的, for 循环的语法形式如下:

 for(表达式1; 表达式2; 表达式3)
 语句;
  • 表达式1 用于循环变量的初始化
  • 表达式2 用于循环结束条件的判断
  • 表达式3 用于循环变量的调整

    首先执行 表达式1 初始化循环变量,接下来就是执行 表达式2 的判断部分, 表达式2 的结果如果
    ==0,则循环结束; 表达式2 的结果如果!=0则执行循环语句,循环语句执行完后,再去执行表 达式
    3 ,调整循环变量,然后再去 表达式2 的地方执行判断, 表达式2 的结果是否为0,决定循环是否继续。
    整个循环的过程中,表达式1初始化部分只被执行1次,剩下的就是表达式2、循环语句、表达式3在循环。

在屏幕上打印1~10的值

int main()
{
	for(int i = 1;i <= 10;i++)
	{
		printf("%d ",i);
	}
	return 0;
}

三、do-while循环

在循环语句中 do while 语句的使用最少,它的语法如下:

do
 语句;
while(表达式);//这个分号记得加


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

在屏幕上打印1~10的值

int main()
{
 int i = 1;
 do
 {
 printf("%d ", i);
 i = i + 1;
 }while(i<=10);
 
 return 0;
}

四、continue和break

在循环执行的过程中,如果某些状况发生的时候,需要提前终止循环,这是⾮常常见的现象。C语言中提供了 breakcontinue 两个关键字,就是应该到循环中的。
break 的作用是用于永久的终止循环,只要 break 被执行,直接就会跳出循环,继续往后执行,并且在分支结构的switch中我们也用到了。
continue 的作用是跳过本次循环 continue 后边的代码,在 for 循环和 while 循环中有所差异的。

1.break举例

#include <stdio.h>
int main()
{
 int i = 1;
 for(i=1; i<=10; i++)
 {
 if(i == 5)
 	break;
 printf("%d ", i);
 }
 return 0;
}

代码中i == 5遇到break跳出循环,所以打印1 2 3 4

2.continue举例

int main()
{
 int i = 1;
 for(i=1; i<=10; i++)
 {
 if(i == 5)
 	continue;//这⾥continue跳过了后边的打印,来到了i++的调整部分
 printf("%d ", i);
 }
 return 0;
}

将break变为continue会怎么样?
在 for 循环中 continue 的作用是跳过本次循环中 continue 后的代码,直接去到循环的调整部分。未来当某个条件发生的时候,本次循环无需再执行后续某些操作的时候,就可以使用continue 来实现。
代码中i == 5遇到continue跳过后续,接着循环,所以打印1 2 3 4 6 7 8 9 10
对比for循环和while循环中的continue

左图while中的continue,i == 5时跳过后续,,发现i < 10,从而发生死循环,因而光标一直浮动;然而右图for中的continue,i == 5时跳过后续,i++,可以循环。

3.do-while的continue和break

do-while 语句中的 break 和 continue 的作用和 while 循环中几乎一模一样,大家下来可以自行测试并体会

标签:语句,continue,int,while,循环,表达式,分支
From: https://blog.csdn.net/code_cen/article/details/140131240

相关文章

  • Spring Boot 中 PGSQL 判断打卡点是否经过轨迹优化代码,循环查询物理表修改生成临时表,
    记录一下一个业务问题,流程是这样的,我现在有一个定时任务,5分钟执行一次,更新车辆打卡的情况。现在有20俩车,每辆车都分配了路线,每条路线都有打卡点,每个打卡点分配了不同的时间段,也就是说,一条路线可能有几百个打卡点,这几百个打卡点中每一个都分配了时间段,有可能是1个时间段,比如8......
  • Python123:找出不是两个数组共有的元素、矩阵运算、方阵循环右移(C语言)
    文章目录1、找出不是两个数组共有的元素2、矩阵运算3、方阵循环右移1、找出不是两个数组共有的元素题目:给定两个整型数组,本题要求找出不是两者共有的元素。输入格式:输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。‪‬‪......
  • git同一分支代码冲突 [GPT]
    问题描述李四和王五同时下载了dev分支代码,main.cpp代码为:#include<stdio.h>voidmain(void){ printf("hello");}李四修改代码后提交并push,李四修改的代码#include<stdio.h>voidmain(void){ printf("hello李四");}同时王五也修改了代码#include<stdio.h>voi......
  • C++基础语法——《循环结构》题解
    循环结构参考资料:https://blog.csdn.net/m0_56945138/article/details/118929416需要掌握:1.for循环用法2.while循环用法3.continue跳过和break终止题号题目名称题解链接3067输出范围内的整数https://www.cnblogs.com/jyssh/p/182740551206简单的累加https://www......
  • 【深度学习】图形模型基础(1):使用潜在变量模型进行数据分析的box循环
    1.绪论探索数据背后的隐藏规律,这不仅是数据分析的艺术,更是概率模型展现其威力的舞台。在这一过程中,潜在变量模型尤为关键,它成为了数据驱动问题解决的核心引擎。潜在变量模型的基本理念在于,那些看似复杂、杂乱无章的数据表象之下,往往隐藏着一种更为简洁、有序的结构和规律,只......
  • 力扣每日一题 下一个更大元素 II 单调栈 循环数组
    Problem:503.下一个更大元素II思路......
  • python创建websocket服务器,实现循环发送消息
    WebSocket协议是在2008年由Web应用程序设计师和开发人员创建的,目的是为了在Web浏览器和服务器之间提供更高效、更低延迟的双向通信。它允许客户端和服务器在任何时候发送消息,无需重新建立TCP连接。WebSocket可以在Web浏览器和服务器之间传输文本和二进制数据,使得构建实时Web......
  • ARM32开发--CRC循环冗余校验
    CRC循环冗余校验循环冗余校验码是一种用在数字网络和存储设备上的差错校验码,可以校验原始数据的偶然差错。CRC计算单元使用固定多项式计算32位CRC校验码。1.硬件CRC在单片机中,芯片具有专用的CRC计算单元,它是按照32位数据长度进行计算。它相当于是我们的MCU有个小......
  • 加更—循环语句的练习题
    加更—循环语句的练习题计算n的阶乘计算1!+2!+3!+……+10!在一个有序数组中查找具体的某个数字n.(讲解二分查找)编写代码,演示多个字符从两端移动,向中间汇聚编写代码实现,模拟用户登陆情景,并且只能登陆三次。(只允许输入3次密码,如果密码正确则提示登陆成功,如果三次均输......
  • 【抽代复习笔记】21-群(十五):循环群引理及定义
    例4:证明,如果σ=(i1i2…ik)是Sn中的一个k-循环,而r∈Sn,则rσr^(-1)也是一个k-循环,且rσr^(-1)=(r(i1),r(i2),…,r(ik))。证:①设σ=(i1i2…ik)=(i1ik)(i1ik-1)…(i1i2),则rσr^(-1)=r(i1i2…ik)r^(-1)=r(i1ik)(i1ik-1)…(i1i2)r^(-1)=r(i1ik)[r^(-1)r](i1ik-1)[......