首页 > 其他分享 >C生万物之循环结构全面学习<四>

C生万物之循环结构全面学习<四>

时间:2024-03-31 18:59:32浏览次数:19  
标签:break continue int 学习 while 循环 printf 万物

万水千山总是情,点点关注行不行。
一声朋友一生情,点点关注才能行!

文章目录

1.三种循环结构

1_1while循环

结构如下展示

1 if(表达式)
2. 语句;

if和while对比

#include<stdio.h>
int main()
{
if(1)
printf("hello\n");//if条件满足,打印一次hello
return 0;
}
#include<stdio.h>
int main()
{
while(1)
printf("hello\n");//while条件满足,打印hello死循环
return 0;
}

while执行流程

在这里插入图片描述

实战示例

eg:输入一个正的整数,逆序打印这个整数的每一位
例如
输入:1 2 3 4 ,输出:4 3 2 1
输入:5 2 1 ,输出:1 2 5
解析:
1.想要得到n的最低位,可以用n%10,得到的余数就是最低位
2.然后去掉最低位,用n/10处理,然后依次去位
答案:

#include<stdio.h>
int main()
{
int n =0;
scanf("%d",&n);
while(n)//当n为0时,循环结束
	{
	printf("%d ",n%10);
	n/=10;
	}
return 0;
}

1_2 for循环

结构如下展示

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

for循环执行流程

在这里插入图片描述

for循环实战

eg:打印1~10

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

while循环和for循环对比

两个循环结构在实现循环时都有初始化,判断,调整三个部分,但是for循环3个部分非常集中,便于代码维护,而如果代码较多的时候,while循环三个部分过于分散。所以循环中for循环使用更舒适一点

1_3 do-while循环

结构如下展示

1 do
2. 语句;
while(表达式);

在循环语句中,do-while语句用的最少,它区别与while循环和for循环。while循环和for循环都是先判断,条件如果满足就进入循环,不满足就跳出
而do-while语句是先直接进入循环体,最后才执行while后的判断表达式

do-while循环执行流程

在这里插入图片描述

eg:打印1~10

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

2_1break和continue语句

在执行循环时,经常我们需要提前终止循环,C语言提供了break和continue两个关键字。
· break:永久终止循环,只要break被执行,直接就会跳出循环,继续往后执行。
·continue:跳过本次循环continue后边的代码。

while循环中的break和continue

eg:
break的示例

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

continue的示例
eg:

#include<stdio.h>
int main()
{
int n =1;
while(n<=10)
{
	if(n==5)
	continue;//当n等于5后,就执行continue,循环就跳过了continue后面的语句了
	printf("%d ",n);
	n++;
}
return 0;
}

运行上述代码猜一猜会发生什么?是不是认为它打印1,2,3,4,6,7,8,9,10,只是少了5。No!!!当你运行之后是不是发现它进入了死循环,那是因为continue跳过了n++这条语句,导致n的值始终是5。

for循环中的break和continue

其实在for循环中break的用法和while循环中一样,这里不作过多演示,着重介绍一下continue语句

#include<stdio.h>
int main()
{
int n =0;
scanf("%d",&n);
	for(n=1;n<=10:n++)
	{
	if(i==5)
	continue;//这里continue跳过了后面的打印,来到了n++的调整部分
	printf("%d ",n);
	}
return 0;
}

上面这串代码才是打印1,2,3,4,6,7,8,9

do - while循环中的break和continue

do - while循环中break和continue的用法和while循环中一样,大家自行测试并体会

循环的嵌套

前面讲了三种循环结构,其实单独用一种并不能很好的解决问题,往往嵌套才能更好的解决实际问题。接下里给大家一个例子
题目:
找出100~200之间的素数,并打印
注:素数又称质数,只能被1和本身整除的数字。

#include<stdio.h>
int main()
{
int i =0;
	for(i=100;i<=200:i++)
	{
		int j = 0;
		int flag = 1;
			for(j=2;j<i:j++)
			{
				if(i%j==0)
				{
					flag=0;
					break;
				}
			}
				if(flag == 1)
				printf("%d",i);
	}
return 0;
}

3. goto语句

C语言提供的一种特别的语法,就是goto和跳转符号。很神奇的一种操作,但如果不能熟练操作容易造成代码死循环或在函数内部随意跳转,打乱程序执行流程,所以建议少用。
用法:

#include<stdio.h>
int main()
{
printf("hello\n");
	goto next;
	printf("hehe\n");
	next:
	printf("跳过了hehe的打印\n");

return 0;
}

(如有错误,麻烦各位大佬评论区指正,感谢!)

标签:break,continue,int,学习,while,循环,printf,万物
From: https://blog.csdn.net/2302_80718801/article/details/137200963

相关文章

  • Django学习_Day 1
    Day1学习笔记:学习视频:https://www.youtube.com/watch?v=yD0_1DPmfKM&list=PLQVvvaa0QuDe9nqlirjacLkBYdgc2inh37:30cmd命令'django-admin'管理命令来查看有什么命令可以运行'ThewayDjangoworksisassumesallwebsitesareactuallyjustacollectionofapps.'......
  • Blazor学习记录_8.预呈现__
    22.NET8中的预呈现预呈现是在服务器上初始呈现页面内容的过程(无需为呈现的控件启用事件处理程序)。服务器会根据初始请求尽快输出页面的HTMLUI,这会让用户感觉应用提高了响应速度。预呈现还可以通过呈现搜索引擎用于计算网页排名的初始HTTP响应的内容,来改进搜索引擎优化(SEO......
  • 深度学习(单机多gpu训练)
    如果一个机器上有多个gpu,可以使用多gpu训练。一般数据量和模型比较大的时候训练速度会有明显的提升,模型和数据比较小的时候反而可能因为数据通信原因导致性能下降。下面是一个简单的例子:importtimeimporttorchimporttorchvision.modelsfromtorchvision.transformsimpo......
  • 使用强化学习训练足式机器人时是否需要根据真实环境数据建立仿真环境
    一直在学习强化学习算法,但是一直也没有真实的机器人环境可以操作,因此只是停留于纸面意义的理论学习,但是突然看到这么一个说法:来自:https://weibo.com/1255595687/O5k4Aj8l2Real2Sim2Real闭环,从Real2Sim到Sim2Real,打通数据到数据的自动闭环,不管是采集物理世界数据生成仿真模型,还......
  • MySQL学习笔记
    级别:1. 了解,面试概率10%2. 掌握,面试概率50%3. 重点,面试概率80%1. 数据库****1. 为什么学习数据库?(1) 测试理论,测试对象,源程序,目标程序,各种文档,数据(2) 几乎所有软件的数据都存储在数据库中(3) 方便更深层的定位bug① 如:刚从页面注册成功的用户,无法登录② ......
  • openGL学习笔记(更新ing)
    本文章暂不介绍GLFW以及GL_GLAD的配置方法。学习赵新政初识openGL #include<iostream>#include"glad/glad.h"#include<GLFW/glfw3.h>//以上是配置好的glad以及glfw需注意glad需要在glfw上面接下来看看GLFW官网提供的ExampleCode#include<GLFW/glfw3.h>intmai......
  • 目前国内全地形能力最强的双足机器人 —— 逐际动力 —— 提出迭代式预训练(Iterative
    相关:https://weibo.com/1255595687/O5k4Aj8l2该公司对其产品的强化学习训练算法给出了较少的描述:提出迭代式预训练(IterativePre-training)方法,把通用机器人的基础运动能力划分为不同级别,进行循序渐进的预训练,这个过程让训练的结果更可控,从而高效地产出和收集有效数据,训练......
  • 如何系统学习python
    目录一系统学习第一步:设定学习目标与规划第二步:基础知识学习第三步:实践与项目经验积累第四步:深入特定领域第五步:持续学习与提升二Python语言的优缺点Python语言的优点:Python语言的缺点:一系统学习系统学习Python编程语言是一个循序渐进的过程,涉及基础知识的学......
  • Scheduling and Traffic Shaping 学习笔记(一)
    Time-AwareShaping  参考:https://inet.omnetpp.org/docs/showcases/tsn/trafficshaping/timeawareshaper/doc/index.html目标:时间感知整形的工作原理是将时间划分为固定的间隔或窗口,并根据帧的优先级在这些窗口内调度帧的传输。通过在单独的窗口中发送优先级较高的帧来......
  • JavaWeb学习笔记——第十天
    Springboostweb案例(一)准备工作需求说明需要完成以下功能:部门管理员工管理查询部门列表查询员工列表(分页、条件)删除部门删除员工新增部门新增员工修改部门修改员工环境搭建项目架构:准备数据库表(dept、emp)。--部门管理createtabledep......