循环语句概论:while、for和do while循环

本文介绍了C语言中的三种主要循环语句——while、for和dowhile的特征、基本结构和执行原理。同时,详细讲解了循环中的break和continue语句的作用,以及它们在不同循环结构中的应用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


思维导图


介绍

循环语句是C语言中十分常用的控制结构之一,用于重复执行一段代码。

一件事情需要重复的做,就可以使用循环语句来实现。

在C语言中,常见的循环语句包括while、for和do while语句。

while循环:

特征

  • while循环是一种先判断条件是否满足的循环语句,
  • 然后根据条件是否满足来决定是否继续执行循环体内的代码。

基本结构

while (循环条件)
{
	//循环体代码
}

执行原理

  • 如果条件满足,则执行循环体内的代码,并再次判断条件是否满足,
  • 如果条件不满足,则跳出循环。

for循环

特征

  • for循环具有比while循环更加紧凑的结构

  • for循环由三部分组成:

    • 循环变量的初始化
    • 循环条件
    • 循环变量的更新

基本结构

for (循环变量初始化; 循环条件; 循环更新)
{
	//循环体代码
}

执行原理

  • for循环在执行前先进行循环变量的初始化,
  • 然后判断条件是否满足,如果条件满足,则执行循环体内的代码,并执行循环变量的更新;如果条件不满足,则跳出循环。

循环变量

for循环中的循环变量,建议采用前闭后开的写法。

下面的代码用来说明这种应用:

形式1,前闭后开:

int i = 0;
//前闭后开的写法
for(i=0; i<10; i++)
{
    ;
}

这里表示一共执行10次,循环条件和执行次数对应,阅读性更强

形式2,前闭后闭:

for(i=0; i<=9; i++)
{
    ;
}

这里也表示一共执行10次,循环条件和执行次数不对应,阅读性不强

特殊形式

设置多个循环变量和循环条件

int x, y;
for (x = 0, y = 0; x<2 && y<5; ++x, y++)
{
	printf("hehe\n");
}
return 0;

do while循环

特征

  • do while循环相对while和for循环的使用频率较低
  • do while循环是先执行循环体内的代码,然后再判断条件是否满足

基本结构

do 
{
	//循环体代码
} while (循环条件);

执行原理

  • do while循环先执行循环体内代码,
  • 然后再根据条件判断,是否继续执行循环

循环语句对比

基本结构

  • for循环相对于while循环和do while循环,结构更加集中和紧凑,适合已知循环次数的场景

执行原理

  • while循环和for循环都是先判断条件是否满足,再执行循环内的代码

  • do while循环是先执行循环内的代码,再判断条件是否满足

语句中的break和continue

break介绍

对于三种循环而言,都是直接跳出整个循环体,不再执行剩下的循环

  1. 在while循环中的应用举例:
#include <stdio.h>
int main()
{
    int i = 1;
    while(i<=10)
    {
        if(i == 5)
        	break;
        
        printf("%d ", i);
        i = i+1;
    }
    return 0;
}

这里的代码只会输出:1 2 3 4,因为当i等于5时,就直接结束了整个循环,不会再执行后面的循环

  1. 在for循环中的应用举例:
#include <stdio.h>
int main()
{
	int i = 0;
	for (i = 1; i <= 10; i++)
	{
		if (i == 5)
			break;
		printf("%d ", i);
	}
    
	return 0;
}

这里的代码只会输出:1 2 3 4,因为当i等于5时,就直接结束了整个循环,不会再执行后面的循环

  1. 在do while循环中的应用举例:
#include <stdio.h>
int main()
{
	int i = 1;
	do
	{
		if (5 == i)
			break;
		printf("%d ", i);
		i = i + 1;
	} while (i <= 10);

	return 0;
}

这里的代码只会输出:1 2 3 4,因为当i等于5时,就直接结束了整个循环,不会再执行后面的循环

continue介绍

对于三种循环而言,都是跳出当前循环,不再执行当前循环中continue后面的代码,直接执行下次循环

  1. 在while循环中的应用举例:
#include <stdio.h>

int main()
{
	int i = 1;
	while (i <= 10)
	{
		i = i + 1;
		if (i == 5)
			continue;

		printf("%d ", i);
	}
	return 0;
}
  • 这里的代码只会输出: 2 3 4 6 7 8 9 10,因为i第一次进入循环就增加了1,所有从2开始输出。

  • 在循环过程中,当i等于5时,遇到continue,跳过了打印,直接执行下次循环,所有5不会输出

  • 当i不等于5时,不会执行continue,也就是不会跳过打印,后面正常输出

  1. 在for循环中的应用举例:
#include <stdio.h>
int main()
{
	int i = 0;
	for (i = 1; i <= 10; i++)
	{
		if (i == 5)
			continue;
		printf("%d ", i);
	}
	return 0;
}
  • 这里的代码只会输出: 1 2 3 4 6 7 8 9 10,在循环过程中,当i等于5时,遇到continue,跳过了打印,直接执行下次循环,所有5不会输出

  • 当i不等于5时,不会执行continue,也就是不会跳过打印,后面正常输出

  1. 在do while循环中的应用举例:
#include <stdio.h>

int main()
{
	int i = 1;
	do
	{
		if (5 == i)
			continue;
		printf("%d ", i);
		i = i + 1;
	} while (i <= 10);
	return 0;
}
  • 这里的代码只会输出: 1 2 3 4 ,在循环过程中,当i等于5时,遇到continue,跳过了打印和i的更新,
  • 直接执行下次循环,这时i依然是5,再次执行continue,再次跳过,i无法更新,陷入死循环
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值