C语言之旅5--分支与循环【2】

news/2025/1/13 15:26:58 标签: c语言, 开发语言

本章概述

  • while循环
  • for循环
  • do-while循环
  • break和continue语句
  • 循环嵌套
  • goto语句
  • 彩蛋时刻!!!

while循环

  • 概述:C语言提供了3种循环语句while就是其中一种。另外2种分别是fordo-while。接下来介绍while语句。while语句和if语句很像的,它的格式如下:

while( 条件是否为真)
{
代码……
}

while括号里面放的是条件是否为真,条件为真则就执行while里面的代码,否则就不执行。和if的用法一模一样。接下来给大家举一个简单的例子。

描述:输入一个数值
输出:如果这数值大于5,则就循环打印hhh。

进行代码展示:

#define  _CRT_SECURE_NO_WARNINGS   1
#include <stdio.h>
int main()
{
	int num = 0;
	scanf("%d", &num);
	while (num > 5)					//条件成立就循环打印,否则就不打印
	{
		printf("hhh");
	}
	return 0;
}

结果运行图展示:在这里插入图片描述

  • 小TIP:当执行的代码只有一条语句的时候,我们可以不用加 { }
  • 执行图展示在这里插入图片描述
    先判断while括号里面的表达式(条件)是否为真,表达式的结果为0(条件为假),循环直接结束;表达式的结果不为0(条件为真),则就执行里面的程序,在返回来进行条件的判断,判断是否条件成立。进行代码展示:

用while循环打印出1~10数值

#define  _CRT_SECURE_NO_WARNINGS   1
#include <stdio.h>
int main()
{
	int i = 0;
	while (i < 10)        //条件不成立的时候,就结束循环
	{
		i++;
		printf("%d ", i);
	}
	return 0;
}

结果运行图展示:在这里插入图片描述

for循环

  • 概述for循环是三种循环中使用频率最多的一个语句。给大家介绍一下它的结构形式:

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

  • for循环的流程图在这里插入图片描述
  • 进行代码展示:
#include <stdio.h>
int main()
{
	int i=0;
	for(i=0;i<4;i++)
	{
		printf("hhh");
	}
	return 0;
}

当执行到for循环语句的时候,先执行 i = 0;,接着判断 i 结果是否小于4。条件成立就执行for循环里面的语句。当for循环里面只有一句代码时,{ }也可以省略不写。

do-while循环

这个语句和while的用法很类似,结构如下:

do
{
语句1;
语句2;
……
}while(判断条件);-----和while一样,条件为假就跳出循环。

它和while有一点不同——这个语句上来就先执行代码,执行到最后再判断while(条件)是否成立大家要注意,在do–while后面是有‘’的。进行代码展示:

简单演示打印10个数字
#define  _CRT_SECURE_NO_WARNINGS   1
#include <stdio.h>
int main()
{
	int i = 0;
	do
	{
		i++;
		printf("%d ", i);
	} while (i < 10);
	return 0;
}

结果运行图:在这里插入图片描述

break和continue语句

  • 前情提示break和continue语句适用于循环里面的
  • break: 它的意思就是打破。它用在switch语句和循环语句里面。在循环语句里面会打破当前的循环,它每次只会打破一层循环,不会一下子打破所有的循环。进行代码展示:
#define  _CRT_SECURE_NO_WARNINGS   1
#include <stdio.h>
int main()
{
	int i = 0;
	for (i = 0; i < 10; i++)
	{
		printf("%d ", i);
		if (i == 5)
			break;       //当i值为5时,就会打破当前的循环
	}
	return 0;
}

结果运行图:在这里插入图片描述
打印到5时,就跳出了循环了,后面的信息就不再打印了。

  • continue: 它的意思就是继续,再开始。它会先暂时跳过continue后面的代码,不会打破当前的循环。它不像break那么绝情。我们就用上面的代码进行continue改造,进行代码展示:
#define  _CRT_SECURE_NO_WARNINGS   1
#include <stdio.h>
int main()
{
	int i = 0;
	for (i = 0; i < 10; i++)
	{
		if (i == 5)
			continue;
		printf("%d ", i);    //i为5时,不再打印数值5。
	}						//但不会打破循环,会继续打印往后的数值
	return 0;
}

结果运行图:在这里插入图片描述
大家可以对比一下这俩个语句的区别,还是很明显的。

循环嵌套

循环嵌套就是循环里面还有循环。在这里给大家写个题目进行演示:进行题目展示:

找出100~200之间的素数,并打印在屏幕上。
注:素数⼜称质数,只能被1和本⾝整除的数字。

题目解析

1:  首先我们先产生100到200之间的数字,这就要用到循环了。
2:  我们再对每个数字进行素数的判断。
3: 用每个数字除以2~自身之间的数字,能被整除就不是素数,否则就是素数。2~自身之间的数字需要用
到循环产生。
#define  _CRT_SECURE_NO_WARNINGS   1
#include <stdio.h>
int main()
{
	int i = 0;
	int y = 0;
	for (i = 100; i <= 200; i++)
	{
		int falge = 1;			//假设是素数
		for (y = 2; y < i; y++)
		{
			if (i % y == 0)
			{
				falge = 0;   //不是素数就会赋值falge=0,跳出循环
				break;
			}
		}
		if (falge == 1)			//为素数就睡打印出来
			printf("%d ", i);
	}
	return 0;
}

结果运行图:在这里插入图片描述

goto语句

咱们在前面讲过了,C语言是一种结构化语言。它需要各种语言的支持,分别是分支,循环和转向语句。前面俩咱们已经讲过了,接下来要讲的goto语句就是转向语句。它的结构如下:

goto 标志 ;
……
标志:
注解:goto后面的 标志 可自定义,goto语句会自动跳转到我们标志好的代码处。

进行代码展示:

我们循环打印“hhhh"字符串
#define  _CRT_SECURE_NO_WARNINGS   1
#include <stdio.h>
int main()
{
	next:					//标志词可自定义
	printf("hhhh\n");
	 goto next;				//程序遇到goto语句时,会自动找到标志处的位置(next)
	return 0;
}

结果运行图:在这里插入图片描述

  • 注意goto语句只能在同一个函数里面用,不能从一个函数体里面跳转到另一个函数体里面。当我们有多层循环嵌套的时候,中间遇到紧急情况,我们需要跳转的时候,就可以用goto语句立马跳转到我们的标志处,这比break迅速多了,因为break一次只能打破一个循环体。
  • 提醒goto语句不要随便乱用,因为只要我们打好标志点,它就可以随意跳到转,这就会导致代码运行发生混乱。所以,要谨慎使用

彩蛋时刻!!!

歌曲:《少年和月光》
在这里插入图片描述
每章一句"再小的努力,乘以365都很明显 "感谢你能看到这里,点赞+关注+收藏+转发是对我最大的鼓励,咱们下期见!!!


http://www.niftyadmin.cn/n/5821992.html

相关文章

Web基础之什么是HTTP协议

Q&#xff1a;什么是HTTP协议&#xff1f; 概念&#xff1a;Hyper Text Transfer Protocol&#xff0c;超文本传输协议&#xff0c;规定了浏览器和服务器之间数据传输的规则。 特点&#xff1a; 1&#xff0e;基于TCP协议&#xff1a;面向连接&#xff0c;安全 2&#xff0e;基…

ip属地什么条件会改变?多角度深入探讨

IP属地&#xff0c;即IP地址的归属地&#xff0c;是互联网上设备连接时的一个关键信息&#xff0c;它通常反映了设备连接互联网时的地理位置。随着社交软件及各大平台推出IP归属地显示功能&#xff0c;IP属地的变化问题逐渐受到广大用户的关注。那么&#xff0c;IP属地在什么条…

书说 MySQL 的悲观锁和乐观锁

什么是乐观锁&#xff1f;什么是悲观锁&#xff1f; 悲观锁&#xff1a; 悲观锁是一种基于悲观态度的控制机制&#xff08;最坏的程度想&#xff0c;每次并发一定会造成阻塞&#xff09;&#xff0c;用于防止数据冲突。它采取预防性措施&#xff0c;在修改数据之前将其锁定&a…

Python----Python基础(元组 tuple,元组的创建,基本操作:访问,连接,索引,计数,长度,最大值,最小值,求和,判断,排序)

一、元组tuple 列表属于可变序列&#xff0c;可以任意修改列表中的元素。 元组属于不可变序列&#xff0c;不能修改元组中的元素。 因此&#xff0c;元组没有增加元素、修改元素、删除元素相关的方法。 二、元组的创建 2.1、使用()方式创建元组 使用圆括号 () 可以创建一个…

深度学习的加速器:Horovod,让分布式训练更简单高效!

什么是 Horovod&#xff1f; Horovod 是 Uber 开发的一个专注于深度学习分布式训练的开源框架&#xff0c;旨在简化和加速多 GPU、多节点环境下的训练过程。它以轻量级、易用、高性能著称&#xff0c;特别适合需要快速部署分布式训练的场景。Horovod 的名字来源于俄罗斯传统舞…

【Java回顾】Day6 JUC锁

JUC锁 AQS(AbstractQueuedSynchronizer)&condition AQS(AbstractQueuedSynchronizer) 队列同步器&#xff0c;以模板方式模式&#xff0c;构建锁或其他同步组件的基础框架&#xff0c;如ReentrantLock、ReentrantReadWriteLock、Semaphore、CountDownLatch等。具体的同步逻…

django在线考试系统

Django在线考试系统是一种基于Django框架开发的在线考试平台&#xff0c;它提供了完整的在线考试解决方案。 一、系统概述 Django在线考试系统旨在为用户提供便捷、高效的在线考试环境&#xff0c;满足教育机构、企业、个人等不同场景下的考试需求。通过该系统&#xff0c;用…

【vue】vue的基础语法--上

目录 一、Vue的模板语法 1. 学会使用VsCode 2. 文本插值 3. 使用JavaScript表达式 4. 无效 5. 原始html 二、 属性绑定 1. 属性绑定 2.简写方案 3.布尔型Attribute 4. 动态邦定多个值 三、条件渲染 1. v-if 2. v-else 3. v-else-if 4. v-show 5. v-if VS v-sho…