C语言中循环概念及结构

C语言中我们会经常用到循环结构,包括for循环,while循环和do-while循环,下面我将分别介绍这些循环结构的用法。

一 for循环

for 循环是最常用到的循环结构之一,它的基本结构是

for(初始化表达式;循环条件;更新表达式)
{ //循环体
}

其允许你初始化一个变量,每次循环时检查条件,最后更新。

这里举一个简单的例子

#include<stdio.h>
int main()
{int a=0;
scanf("%d",&a);
for(int b=0;b<a;b++)
{
printf("%d",b);
}
printf("\n");//输出比a小的整数
}

其中for循环中间三个部分都可以省略,但必须保留分号,省略部分的不同,循环的行为会有所不同,

1 省略初始化表达式。

#include<stdio.h>
int main()
{int a=0;
int b=0;
scanf("%d",&a);
for(;b<=a;b++)
{
printf("%d",b);
}
printf("\n");//输出比a小的整数
}

在这个例子中b已经在循环外初始化,因此可以在for循环中省略初始化表达式这一步骤。

2 省略条件

注意如果我们省略了条件,将陷入无限循环,所以要用break语句来终止循环,还是这个例子。

#include<stdio.h>
int main()
{int a=0;
scanf("%d",&a);
for(int b=0;;b++)
{
if(b>=a-1)
{
break;
}
printf("%d",b);
}
printf("\n");//输出比a-1小的整数.。
}

若没有条件限制,循环将一直执行,直到b到达11时通过break语句结束。

3省略更新表达式

如果省略了更新,意味着我们每次循环结束没有了需要执行的操作,所以要在循环体内部加上其更新的操作,还是这个例子

#include<stdio.h>
int main()
{int a=0;
scanf("%d",&a);
for(int b=0;b<=a;)
{
printf("%d",b);
b++;
}
printf("\n");//输出比a小的整数
}

这个例子中,b的增加是在循环体内部手动完成的,所以可以省略。

4省略多个部分

在for循环中同样可以多个部分省略,你甚至可以写三个分号,还是这个例子。

#include<stdio.h>
int main()
{int a=0;
int b=0;
scanf("%d",&a);
for( ;;)
{
if(b>=a-1)
{
break;
}
b++;
printf("%d",b);
}
printf("\n");//输出比a-1的整数。
}

二 while循环

基本形式为

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

同样我们举例说明

#include<stdio.h>
int main()
{
	int a = 0;
	int b = 0;
	scanf_s("%d", &a);
	while (b <= a) {
		printf("%d", b);
		b++;
	}
}

其意义为while循环给定条件为真时重复执行代码,我们可以重复运用这一点,可以将其条件改为判断,但是为判断时若为假直接结束循环,但是为真我们又会陷入死循环,所以我们得需要break语句结束循环,同样举例

#include<stdio.h>
int main()
{
	int a=0;
	int b=10;
	printf("输入数字:");
	scanf_s("%d", &a);
	while (a != b)
	{
		if (a > b) {
			printf("%d", b);
			b++;
		}
		if (a < b)
		{
			break;
		}
	}
}//当a不等于且a大于10时输出和10之间的整数,当a小于10时跳出循环

这里若是没有break 语句当a小于10时其会陷入是循环因为a不等于b恒真,会一直循环。

三 do -while语句

首先我们应该看到这个循环语句觉得和whlie语句差不多,但是它前面有个do,这里我们应该理解,这个代码时先执行后判断的,基本结构为

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

和while语句差不多也是可以将条件改为判断,这里就不举例了,但是要注意的是它会至少执行一次,然后检查条件,记住它会至少执行一次!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值