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

本章概述

while循环

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

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

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

描述:输入一个数值

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

进行代码展示:

javascript 复制代码
#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数值

javascript 复制代码
#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循环的流程图
  • 进行代码展示:
javascript 复制代码
#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个数字
javascript 复制代码
#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语句和循环语句里面。在循环语句里面会打破当前的循环,它每次只会打破一层循环,不会一下子打破所有的循环。进行代码展示:
javascript 复制代码
#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改造,进行代码展示:
javascript 复制代码
#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~自身之间的数字需要用
到循环产生。
javascript 复制代码
#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"字符串
javascript 复制代码
#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都很明显 "感谢你能看到这里,点赞+关注+收藏+转发是对我最大的鼓励,咱们下期见!!!

相关推荐
初夏08118 分钟前
java.net.SocketException: Connection reset 异常原因分析和解决方法
java·开发语言
代码驿站52022 分钟前
R语言的面向对象编程
开发语言·后端·golang
L_09071 小时前
【C】初阶数据结构1 -- 时间复杂度与空间复杂度
c语言·数据结构
Panda-gallery1 小时前
【Rust】错误处理机制
开发语言·后端·rust
Panda-gallery1 小时前
【Rust】结构体的方法语法
开发语言·后端·rust
get_money_1 小时前
贪心算法汇总
java·开发语言·数据结构·算法·leetcode·贪心算法
ByteBlossom6661 小时前
Perl语言的语法
开发语言·后端·golang
摇光932 小时前
js观察者模式
开发语言·javascript·观察者模式
誓约酱2 小时前
Linux下ext2文件系统
android·linux·c语言·数据库·c++·后端·ubuntu
山茶花开时。2 小时前
[SAP ABAP] 使用LOOP AT...ASSIGNING FIELD-SYMBOL 直接更新内表数据
开发语言·sap·abap