循环语句--让对的东西一直存在


循环语句的种类

c语言中的循环语句有三种

1、for循环
2、while循环
3、do while循环

循环语句,当表达式正确的时候,循环继续,否则循环停止

循环语句是c语言中的循环结构

for语句的语法结构

for(表达式1;表达式2;表达式3)
{
    循环语句;
}
//表达式1为初始化部分(初始化部分只会执行一次),用于初始化循环的变量
//表达式2为条件判断部分,用于判断循环什么时候终止
//表达式3为调整部分,用于循环条件的调整

代码实例:

#include <stdio.h>
int main()
{
	int i = 0;
	for (i = 1; i <= 10; i++)
//i初始化为1,i<=10判断条件为真进入循环,每次经过循环i++,直到i<=10为假
    {
		printf("%d ", i);
	}
	return 0;
}//打印出来的结果为1 2 3 4 5 6 7 8 9 10

注:for语句默认控制后面的一条语句,for循环中如果要控制多条语句需要添加{}

break在for循环中的作用

#include <stdio.h>
int main()
{
	int i = 0;
	for (i = 1; i <= 10; i++)
	{
        if(i==5//当i==5时
		break;//跳出循环
		printf("%d ", i);
	}
	return 0;
}//打印结果为1 2 3 4

作用:当循环碰到break时候,整个循环终止

continue在for循环中的作用

#include <stdio.h>
int main()
{
	int i = 0;
	for (i = 1; i <= 10; i++)
	{
		if (i == 5)//当i==5时候
			continue;//跳过本次循环
		printf("%d ", i);
	}
	return 0;
}//打印结果为1 2 3 4 6 7 8 9 10

作用:打印结果没有5,说明continue跳过了本次的循环及后面的代码

for循环中常见的错误

循环内赋值,循环失控,陷入死循环
#include <stdio.h>
int main()
{
	int i = 0;
	for (i = 1; i <= 10; i++)
	{
		printf("%d ", i);
		i = 5;//在循环内赋值
	}
	return 0;
}//循环失控,陷入死循环,除了第一个数字是1,后面一直打印6
//因为每次经过i=5;这个语句的时候,i都会被赋值为5,导致不会出现判断为假的情况,使得循环终止

建议:不可以在for循环体内修改循环变量,防止for循环失去控制

表达式中有些为空,导致结果和预期不一样

例子1

#include <stdio.h>
int main()
{
	for (;;)
//for循环括号()中间的内容都可以省略,但是如果判断部分表达式省略就会导致死循环
	{
		printf("hehe\n");
	}
	return 0;
}//结果为死循环,一直打印hehe

建议:判断部分的表达式不可以省略

例子2

#include <stdio.h>
int main()
{
	int j = 0;
	int i = 0;
	for (j = 0; j < 3; j++)
	{
		for (i = 0; i < 3; i++)//每次重新经过这个循环,i重新初始化为1
		{
			printf("hehe\n");
		}
	}
	return 0;
}//打印出来的结果为9个hehe

如果我们把第二个循环中的i=0删除会产生什么效果

#include <stdio.h>
int main()
{
	int j = 0;
	int i = 0;
	for (j = 0; j < 3; j++)
	{
		for (; i < 3; i++)//删除i=0
		{
			printf("hehe\n");
		}
	}
	return 0;
}//打印出来结果为3个hehe
//因为当i++三次后,i没有被重新赋值,导致i一直==3,j循环就不起作用了

建议:初始化部分的表达式也不可以随便省略

for循环建议的写法

**建议:**for语句的循环控制变量的取值采用“前闭后开区间”写法

**注:**这种写法也不是必须的

代码实例:

#include <stdio.h>
int main()
{
	int i = 0;
	for (i = 0; i <10; i++)//i=0为左闭,i<10为右开
	{
		printf("%d ", i);
	}
	return 0;
}

为什么我们要这么写代码?
因为10可以代表某种特殊的意义,比如循环了10次

while语句的语法结构

while(表达式)
{
    循环语句;
}
//如果表达式为真,循环语句被执行,否则不被执行

代码实例:

#include <stdio.h>
int main()
{
	int i = 1;
	while (i <= 10)//判断条件为i<=10
	{
		printf("%d ", i);
		i++;//每次循环后i+1
	}
	return 0;
}//打印出来的结果为1 2 3 4 5 6 7 8 9 10

break在while循环中的作用

#include <stdio.h>
int main()
{
	int i = 1;
	while (i <= 10)
	{
		if (i == 5)//设置判断条件i==5
			break;//跳出循环
		printf("%d ", i);
		i++;//每次循环后i+1
	}
	return 0;
}//打印出来的结果是1 2 3 4

作用:当循环碰到break时候,整个循环终止

continue在while循环中的作用

#include <stdio.h>
int main()
{
	int i = 1;
	while (i <= 10)
	{
		if (i == 5)//设置判断条件i==5
			continue;//跳过本次循环
		printf("%d ", i);
		i++;
	}
	return 0;
}//打印出来的结果为1 2 3 4 光标

img

作用:4后面出现了光标说明出现了死循环,说明continue跳过了本次的循环及后面的代码,但是不会i++,一直跳过本次循环,导致死循环

do while语句的语法结构

do
{
    循环语句;
}while(表达式)
//先执行后判断,所以表达式至少执行了一次

代码实例:

#include <stdio.h> 
int main()
{
	int i = 1;
	do
	{
		printf("%d ", i);
		i++;
	} while (i < 10);//判断条件
	return 0;
}//打印出来的结果为1 2 3 4 5 6 7 8 9 10

break在do语句中的作用

#include <stdio.h> 
int main()
{
	int i = 1;
	do
	{
		if (i == 5)//设置判断条件i==5
			break;//跳出循环
		printf("%d ", i);
		i++;//每次循环后i+1
	} while (i < 10);
	return 0;
}//打印出来结果为1 2 3 4

作用:当循环碰到break时候,整个循环终止

### continue在do语句的作用

#include <stdio.h>
int main()
{
	int i = 1;
	do
	{
		if (i == 5)//设置判断条件i==5
			continue;//跳过本次循环
		printf("%d ", i);
		i++;//每次循环后i+1
	} while (i <= 10);
	return 0;
}//打印出来的结果为1 2 3 4 光标

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5FVQdo41-1639903371754)(C:\Users\fmshixiang\AppData\Roaming\Typora\typora-user-images\image-20211219164204424.png)]

作用:4后面出现了光标说明出现了死循环,说明continue跳过了本次的循环及后面的代码,但是不会i++,一直跳过本次循环,导致死循环

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一起慢慢变强

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值