C语言循环语句

前言:c语言中的循环语句就是用来描述生活中重复做的事情 

 

while循环

优点:当不确定循环次数时

while(循环条件)

{

        //要执行的代码

}

1.在进入while循环体之前会先判断循环条件能不能满足,如果满足就执行代码,不满足就不会执行

2.在每次执行完循环之后都应该接近循环条件,不然会出现死循环

 

打印9次 "每天都要学习" 

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>

int main() {
	int a = 10;
	
	while (a > 1)
	{
		printf(" 每天都要学习\n");
		a--;
	}

	return 0;
}

1.这里的循环条件是  a 大于 1,因为a是10所以a 大于 1成立,所以会执行while里面的代码,直到不满足循环条件为止

2.a从10开始 ,当执行到a--的时候,a就变成了9,第二次a就变成了8,当 a 大于 1 的条件不成立时循环结束

运行结果:

 

 do-while循环

优点:第一次执行时不管循环条件是否成立都会执行一次代码

do

{

        //要执行的代码

}while(循环条件);

1.do-while循环的特殊之处就在于,不管你是不是满足循环条件,都会先执行一次循环体里面的代码,代码执行完毕后在判断循环条件成不成立,如果成立就继续循环,不成立则结束循环

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>

int main() {
	int a = 1;
	do
	{
		printf(" 每天都要学习\n");
		a++;
	} while (a < 1);

	return 0;
}

1.程序执行到do-while时不管循环条件成不成立直接执行循环体里的语句,当执行完一次后在判断循环条件,所以这里只会打印一次 "每天都要学习"

运行结果:

 

for循环

优点:初始化变量,循环条件,控制循环变量都在一起方便管理,更简洁

for(初始化变量;循环条件;控制循环变量)

{

        //要执行的代码

1.看到这里就会很头疼了,初始化变量是什么?控制循环变量又是什么?用我自己的话来解释下

初始化变量其实就是给一个变量赋值

例如:int i = 0;这就是初始化变量  

控制循环变量与循环条件有关系,我们知道决定一个循环执行了几次要看循环条件成立了几次

假设循环条件是 i < 9, i 如果不做任何调整这个循环就会一直执行下去,这里我们要是把 i 控制住那不就可以得到我们想要的结果了,控制循环变量就是控制这个 i 的值,让 i 每次都越来越接近这个循环条件从而达到控制循环次数的效果

这里的初始化变量,循环条件,控制循环变量都是可以省略掉不写的,但是分号一定要写

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>

int main() {
	for (int i = 0; i < 10; i++)
	{
		printf("每天都要学习\n");
	}
	return 0;
}

运行结果:

 

如果我们不写for循环括号里面的会怎么样??

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>

int main() {
	for ( ; ; )
	{
		printf("每天都要学习\n");
	}
	return 0;
}

运行结果:

 为什么会死循环?

因为当循环条件被省略后,程序不知道我们要打印几次,所以他会一直打印一直打印,直到天荒地老。

所以当我们使用for循环时循环条件如果要省略,那可得好好想一想

break关键字

在之前的switch-case语句中就出现过break,在switch-case中当程序执行到break的时候就会结束当前的switch-case。当然有的人可能认为循环中的break和switch-case中的break不一样,不过我要告诉你的是,这两个其实是一模一样的。都是跳出当前的语句。

接下来我们用一小串代码做个演示

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>

int main() {
	for (int i = 1; i < 9; i++)
	{
		//if ( i == 3)
		//{
		//	break;
		//}
		printf("我饿了\n");
	}
	return 0;
}

我们来分析一下

这里先不考虑if语句,i  从 1开始直到 i = 9 的时候 ,i < 9 不成立,所以这里会打印 8 次"我饿了"

运行结果如下:

当我们加上if语句又会出现什么结果呢?

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>

int main() {
	for (int i = 1; i < 9; i++)
	{
		if ( i == 3)
		{
			continue;
		}
		printf("我饿了\n");
	}
	return 0;
}

运行结果如下:

至于为啥只打印两次,且听我娓娓道来

当 i 的值等于3的时候,if 里面的条件表达式正好满足,所以会执行break

而break的作用又是跳出当前语句,所以就打印了两次 "我饿了"

可能又有人会说如果break后面还有语句怎么办

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main() {
	for (int i = 1; i < 9; i++)
	{
		if ( i == 3)
		{
			break;
			printf("我还没吃饭啊\n");
		}
		printf("我饿了\n");
	}
	return 0;
}

 

运行结果如下:

这里我们可以看到break后面的语句没有被执行,所以如果break的后面有代码怎么办我只能说风光大办,当然这是个玩笑话

当我们写代码是一个避免break有代码,因为程序执行到break会跳出当前的语句

注意break只能在循环或者switch-case中使用

continue关键字

continue的意思就是继续,到底是怎么个继续法,还听我继续分解

还是刚才的代码

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>

int main() {
	for (int i = 1; i < 9; i++)
	{
		if ( i == 3)
		{
			continue;
		}
		printf("我饿了\n");
	}
	return 0;
}

运行结果如下:

可以看到只打印了7次 "我饿了"

当 i == 3 ,if 表达式成立执行 continue,continue会把它后面的代码都给省略掉,然后在执行 i++,这时候 i 就变成了4,然后继续循环直到 i < 9 不成立

continue没有break那么暴力,它只会结束本次循环,而break是直接结束循环

如有错误联系我Q

3190507419

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值