首页 > 其他分享 >小白学懂C语言---分支循环语句(下)

小白学懂C语言---分支循环语句(下)

时间:2024-09-12 18:51:43浏览次数:3  
标签:break continue int while C语言 --- 学懂 循环 表达式

循环语句

这章我们来谈谈三种循环语句(for循环,while循环,do-while循环)

1. for循环

for循环应该是平时用的比较多的一种,也是一种容易理解的循环。

for循环语法:

for(表达式1 ;表达式2 ;表达式3)
{
	语句
}

强调一下:
1.表达式1 表达式2 表达式3,两两之间用 ; 隔开,记住不要写成逗号
2.for()后面不要加 ;
因为for循环只能控制后面的一条语句,如果加了;那么for循环只能控制到这 ;就结束了,下面的大括号包含的语句就不属于for循环了。

1.1 for循环中表达式的执行过程
表达式1:初始化数值,然后执行表达式2		例子:int i = 0
表达式2:判断该表达式是否为真,真则执行for循环指定的嵌套语句,然后执行表达式3		例子:i < 10:
表达式3:增减值		例子:i++
1.2代码实例

*给大家举个简单for循环的例子:打印1-9数字。
代码:

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

效果:

1 2 3 4 5 6 7 8 9

***现在来加一点难度:求1+2+3+…+99+100的总和。
代码:

#include<stdio.h>
int main() {
	int i = 0;
	int sum = 0;//sum是总和的意思
	for (i = 1; i <= 100; i++) {
		sum = sum + i;//每次i+1 sum再加i
	}
	printf("sum = %d\n",sum);
	return 0;
}

for循环还有很多玩法,大家可以自己去玩一下。

2. while循环

while循环跟for循环一样很常用,也比较好理解,和for循环不同的是初始化条件搬到了最前面,增值表达式搬到了语句里面。

while循环语法:

while(控制循环表达式)
{
	(语句)
}
2.1代码演示

简单举个例子:打印10遍 大师我悟了!
代码:

int n = 10;
while(n > 0) {
	printf("大师,我悟了!\n");
	n--;
}

效果:
在这里插入图片描述
初始化循环变量n的值,给定循环条件n>0,每执行一次printf语句,n的值-1,当执行到n的值不符合判断条件时结束循环。
注意:如果在循环体内忘了对影响循环控制表达式的变量(就是这个 n)进行改变,就会使这个循环变成死循环。

3. do-while循环

Q:do-while循环和while循环有区别吗?
A:这不是废话吗,名字都不一样。while循环执行循环体前会判断一下循环控制表达式,而do-while循环会在执行循环控制表达式前先执行一遍循环体。

do-while循环语法:

do
{
	(语句)
	
}while(循环控制表达式);
3.1代码演示

do-while循环在有些时候还是非常好用的
例:打印1-10数字

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

效果:

1 2 3 4 5 6 7 8 9 10

4. break和continue

break和continue语句
break 和do while 循环,因为n即使是在循环执⾏的过程中,如果某些状况发⽣的时候,需要提前终⽌循环,这是⾮常常⻅的现象。C语⾔中提供了break和continue 两个关键字,就是应⽤到循环中的。

4.1 break 举例

break的作⽤是⽤于永久的终⽌循环,只要break 被执⾏,直接就会跳出循环,继续往后执⾏。

代码演示:

#include<stdio.h>
int main() {
	int i = 1;
	while (i < 10) {
		if (i == 5)
			break; //当i等于5的时候,就执行break,循环终止
		printf("%d ", i);
		i = i + 1;
	}
	return 0;
}

效果:
在这里插入图片描述

打印了1,2,3,4后,当i等于5的时候,循环在 break 的地⽅终⽌,不再打印,不再循环。所以 break 的作⽤就是永久的终⽌循环,只要break 被执⾏,break 外的第⼀层循环就终⽌了。
那以后我们在循环中,想在某种条件下终⽌循环,则可以使⽤break 来完成我们想要的效果。

4.2 continue 举例

continue 是继续的意思,在循环中的作⽤就是跳过本次循环中下⼀次循环的判断。
那如果我们把上面代码的 break 换成 continu 会怎么样呢?
代码演示:

#include<stdio.h>
int main() {
	int i = 1;
	while (i < 10) {
		if (i == 6)
			continue; //当i等于5的时候,就执行continue,直接跳过continue下面的代码,去循环判断的地方
			         //因为跳过了i=i+1,所以i一直等于5,陷入死循环
		printf("%d ", i);
		i = i + 1;
	}
	return 0;
}

效果:
在这里插入图片描述

到这⾥我们就能分析出来,continue 可以帮助我们跳过某⼀次循环 continue 后边的代码,直接到循环的判断部分,进⾏下⼀次循环的判断,如果循环的调整是在 continue 后边的话,可能会造成死循环。

简单吧,有没有悟了的感觉
悟了的小伙伴点个在这里插入图片描述
再走吧,顺便关注一下!

标签:break,continue,int,while,C语言,---,学懂,循环,表达式
From: https://blog.csdn.net/2301_80466280/article/details/141337142

相关文章

  • 图论篇--代码随想录算法训练营第五十七天打卡| 最小生成树问题
    题目链接:53.寻宝(第七期模拟笔试)题目描述:在世界的某个区域,有一些分散的神秘岛屿,每个岛屿上都有一种珍稀的资源或者宝藏。国王打算在这些岛屿上建公路,方便运输。不同岛屿之间,路途距离不同,国王希望你可以规划建公路的方案,如何可以以最短的总公路距离将所有岛屿联通起来(注意:这......
  • Openwrt安装ddns-go
    必备条件已刷好OpenWRT的路由Openwrt已配置好网络根据CPU架构下载DDNS-go我用的是迅雷赚钱宝1代,其CPU是arm7,所以要下载对应的arm7版本https://github.com/jeessy2/ddns-go/releases解压文件,将文件复制到openwrt用WinSCP连接OpenWRT,复制ddns-go进去WinSCP下载如果不知......
  • 【解题报告】P8478 「GLR-R3」清明
    P8478「GLR-R3」清明参考了出题人题解和xcyyyyyy大神的题解,强推前两篇。拿到题完全没思路怎么办???人类智慧的巅峰,思维量的登峰造极。换句话说就是非人题目,不过不得不说GLR的题是真的好,难度也是真的高。首先我们需要看懂题面,这是第一个难点。题面大意如下:对于一个雨滴,它......
  • 面试-JS Web API-JSONP和cors
    JSONP(JSONwithPadding)JSONP是通过<script>标签来实现跨域数据传输的技术。它是为了绕过浏览器的同源策略限制而诞生的。访问一个网址,服务端一定返回一个html文件吗?---不是的服务器可以任意动态拼接数据返回的,只要符合html格式的要求就可以。JSONP的工作原理:客......
  • PTA 6-10 阶乘计算升级版(详讲)
    6-10阶乘计算升级版-基础编程题目集(pintia.cn)https://pintia.cn/problem-sets/14/exam/problems/type/6?problemSetProblemId=742&page=0首先这道题不能用我们之前学过的阶乘计算方法来解决,比如下面这段代码就无法通过全部的样例voidPrint_Factorial(constintN)......
  • solidworks案例3-20240910
    使用到的命令:扫描,薄壁特征,等距实体......
  • [CSS] z-index
    z-index不生效未设置定位z-index仅对定位元素生效,也就是说,元素必须设置了position属性为relative,absolute,fixed或sticky。如果元素的position是默认的static,z-index会失效。堆叠上下文层叠上下文是元素的一个局部层叠环境,z-index只在它所属的层叠上下文中有效......
  • 饥荒联机版mod制作[修改原版的逻辑--hook]
    或许在我们游玩的过程中会有一些有一些原版的玩法不符合我们的期望,这时我们就可以对其进行一些修改,来提升我们的游戏体验。修改的方法是在实体或者组件(想修改的内容是什么,这里就改什么)初始化的时候,对其代码逻辑进行修改,从而使这个实体或者组件达到我们的预期目标。一、对预制......
  • 图像处理-边缘检测算法的原理和实现
    概述边缘检测是图像处理中的一项重要任务,其原理是基于图像的梯度计算。梯度是函数的变化速率,图像中的边缘意味着像素灰度值的快速变化。常用的边缘检测算法有Sobel算子、Prewitt算子、Laplacian算子、Canny算子等。Sobel算子(滤波器)Sobel滤波器通过使用两个3x3卷积核(也称为掩......
  • ORA-01940 无法删除当前连接的用户
    ----bayaim,个人原创----2024年9月12日17:36:50 ORA-01940无法删除当前连接的用户----------------------------------------------------1、现象:删除用户dropuserECOLOGYcascade;报错:ora01940无法删除当前连接的用户2、解决办法:--查看用户的sid......