C语言的循环语句

在生活中我们有时需要反反复复的做一件事情,C语言用循环语句来解决

C语言的循环语句有 while ,for, do while

一、while

1.while 语句的语法形式

while (表达式)
	语句;

流程图

while 语句的执行流程:先判断表达式,如果为真,执行语句,然后后在判断表达式。重复进行,如果表达式为假,则退出循环,不再执行

用 while 循环输出1 ~ 10
#include <stdio.h>

int main()
{
	int i = 1;
	
	while (i <= 10)
	{
		printf("%d ", i);

		i++;
	}

	return 0;
}

2、while 语句中的 break 和 continue

(1)break

while 语句中如果执行 break 则会直接跳出循环

程序输出什么呢?

#include <stdio.h>
int main()
{
	int i = 1;
	
	while (i <= 10)
	{
		if (i % 5 == 0)
			break;
			
		printf("%d ", i);

		i++;
	}

	return 0;
}

程序输出 1 2 3 4

(2)continue

while 语句中执行 continue 时会跳过 continue 后面循环体的语句,来到判断表达式

程序输出什么呢?

#include <stdio.h>
int main()
{
	int i = 1;
	
	while (i <= 10)
	{
		if (i % 5 == 0)
			continue;
			
		printf("%d ", i);
			
		i++;
	}

	return 0;
}

程序输出1 2 3 4 后死循环

二、for

1、for 语句的语法形式

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

流程图
for 语句的执行流程:先执行表达式1,然后判断表达式2,如果为真,执行语句,然后执行表达式3,接着判断表达式2,重复进行,如果表达式2为假,则退出循环,不再执行

通常,表达式1为循环变量赋一个初识值,表达式2作为是否执行循环的条件,表达式3改变循环变量的值,避免循环一直执行下去

用 for 循环输出1 ~ 10
#include <stdio.h>

int main()
{
	int i;

	for (i = 1; i <= 10; i++)
	{
		printf("%d ", i);
	}

	return 0;
}

2、for 语句中的 break 和 continue

(1)break

for 语句中如果执行 break 则会直接跳出循环

程序输出什么呢 ?

#include <stdio.h>

int main()
{
	int i;

	for (i = 1; i <= 10; i++)
	{
		if (i % 5 == 0)
			break;
			
			printf("%d ", i);
	}

	return 0;
}

程序输出 1 2 3 4

(2) continue

for 语句执行 continue 会跳过 continue 后面循环体内的语句,来到表达式3,然后判断表达式2,继续循环

程序输出什么呢?

#include <stdio.h>

int main()
{
	int i;

	for (i = 1; i <= 10; i++)
	{
		if (i % 5 == 0)
			continue;

		printf("%d ", i);
	}

	return 0;
}

程序输出1 2 3 4 6 7 8 9

3、for 循环的 3 个表达式都可以省略

for(;;)

分号不能省略

省略表达式2时:此时循环永真

三、do while

1、do while 语句的语法形式

do
语句;
while (表达式);

流程图
无论条件如何都会执行一次语句

先执行语句,然后判断表达式,如果表达式为真,执行语句,重复进行,如果表达式为假,则退出循环

 用 do while 循环输出 1 ~ 10
#include <stio.h>

int main()
{
	int i = 1;

	do
	{
		printf("%d ", i);

		i++;
	}
		while (i <= 10);

	return 0;
}

2、do while 语句中的 break 和 continue

(1)break

do while 中如果执行 break 则会直接跳出循环

程序输出什么呢?

#includ <stdio.h>

int main()
{
	int i = 1;

	do
	{
		if (i % 5 == 0)
			break;

		printf("%d ", i);

		i++;
	} while (i <= 10);

	return 0;
}

程序输出 1 2 3 4

(2)continue

do while 语句执行continue 会跳过 continue 后面循环体内的语句,来到判断表达式

程序输出什么呢?

#includ <stdio.h>

int main()
{
	int i = 1;

	do
	{
		if (i % 5 == 0)
			continue;

		printf("%d ", i);

		i++;
	} while (i <= 10);

	return 0;
}

输出1 2 3 4 后死循环

四、一些习题

1、计算 n 的阶乘

#inlcude <stdio.h>

int main()
{
	int i = 0;
	int ret = 1;
	int n = 0;
	scanf("%d", &n);


	for (i = 2; i <= n; i++)
	{
		ret *= i;
	}

	printf("%d\n", ret);

	return 0;
}

2、计算1!+ 2!+ … + 10!

#include <stdio.h>

int main()
{
	int i = 0;
	int ret = 1;
	int sum = 0;

	for (i = 1; i <= 10; i++)
	{
		ret *= i;
		sum += ret;
	}

	printf("%d\n", sum);

	return 0;
}

goto 语句也可以实现循环,但是可以用上述的循环语句替代

for 循环其实是 while 循环的一种常用方式的简写,在需要赋初值和调整循环变量的语句时,他比 while 循环的效果更好,for 循环将循环变量的初值,循环条件,以及循环变量的调整放在一起,当循环语句较多时,比使用while语句更方便的管理

总结: 三种循环都可以使用 break 和continue 语句,他们的作用有一点点的差别,根据应用场景选择合适的循环语句

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值