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