1. C语言的循环
对于C语言来说,循环就是当满足条件是,不停的重复运行一段代码,直到不满足条件则停止代码的运行。
这里有三种循环语句,分别为while循环,for循环,do while循环三种。
1.1 while循环
while的语法结构:
while(表达式)
循环语句;
简单的写一个代码
#include<stdio.h>
int main()
{
int a = 1;
while (a <= 10)
{
printf("%d\n", a);
a++;
}
return 0;
}
while就将printf运行了十次。直到a不符合while的条件判定,便跳出了while循环。
当然,while循环中并不是一定要自己跳出循环,也可以通过break来跳出循环,例如
#include<stdio.h>
int main()
{
int a = 1;
while (a <= 10)
{
if (a == 3)
break;
printf("%d\n", a);
a++;
}
return 0;
}
当a数值为3时,直接进入了if语句,通过break跳出循环了,不管循环中还有多少的代码,都不会被运行,直接跳出while的循环。
还有终止本次循环的continue,使用continue的作用是跳过本次循环的后续内容,continue后续的内容不会再执行,而是回到while的判断部分,重新判断是否再次循环 。
#include<stdio.h>
int main()
{
int a = 1;
while (a <= 10)
{
if (a == 3)
continue;
printf("%d\n", a);
a++;
}
return 0;
}
运行结果如下
可以看出程序并没有显示结束。
因为在a的值调整为3的时候,直接进入了if,通过continue直接跳回到了while的判断句,而没有进打印和a++,a的数值恒定是3,没有后续的调整,导致了代码死循环。
1.2 for循环
for(初始化;条件判断;条件调整)
循环语句;
同样,简单的输出一下1-10
#include<stdio.h>
int main()
{
int a = 10;
int i = 0;
for (i = 1; i <= a; i++)
{
printf("%d\n", i);
}
return 0;
}
运行结果如下
在for后面的()里面将条件初始化,条件判断和调整都包含在一起了,在写多行代码时,更加的方便调整,但是()里面的内容是否可以省略呢,答案是可以。
#include<stdio.h>
int main()
{
int a = 10;
int i = 0;
int j = 0;
for (i = 1; i <= a; i++)
{
printf("%d\n", i);
}
return 0;
}
运行结果和上面的一样。
如果省略条件判断,那判断结果就是恒为真,会一直进行循环,导致死循环。
如果省略调整语句
#include<stdio.h>
int main()
{
int a = 10;
int i = 0;
int j = 0;
for (i = 1; i <= a; )
{
printf("%d\n", i);
}
return 0;
}
也会陷入死循环,且不能达到最初的目标。
对于for循环中的continue和break用法与while循环中的一致,则不再赘述。
1.3 do while循环
do
循环语句 while(条件语句);
值得注意的是其他两种循环,都是先判断,再执行。而do while则是先执行一次,再开始判断,也就说,do while最少也会执行一次。
用do while输出1-10
#include<stdio.h>
int main()
{
int a = 1;
int b = 10;
do
{
printf("%d\n", a);
a++;
} while (a <= b);
return 0;
}
运行结果如下
可以看出,while()中的判断语句,在后面,也就是程序说会先运行一遍do中的循环内容,再进行判断,即使条件一开始并不符合while的判断语句,也会先执行一遍。
2.1 三种循环的区别
条件初始化,while和do while的初始化,都在循环的外面,属于全局变量,而for的初始化是在循环内部,只能在循环里面使用。
循环次数,for的循环次数是可以确定的,但是其他两个循环的循环次数是不确定的。
执行判断,对于do while循环来说,会先执行一次,再进行判断,而for循环和while循环来说,则是先进行判断,再执行。
虽然三种循环可以配合使用,但是for循环的可能比其他两个循环更方便使用,因为for循环的初始化;条件判断;条件调整都是在在一起的,即使打了很多行代码,也依旧不会影响后续循环的调整。