《《二.循环》》
循环分为while循环 for循环 do while 循环
(1.)while循环
while基本语句
while(表达式)
{
语句
}
依旧是满足括号里的表达式为真才会去执行下面的语句,否则就不会进入循环
举个例子
打印0到10的数字
a++是改变a的初始值,如果不改变就会一直用a=0去判断,一直打印a=0死循环
#include <stdio.h>
int main()
{
int a = 0;
while (a < 11)
{
printf("%d ", a);
a++;
}
}
(2).for循环
for循环基本语句
for(表达式;表达式;表达式)
{
语句
}
举个和while同样的例子
打印0到10的数字
for循环例子
int main()
{
int a = 0;
for (a = 0; a < 11; a++)
{
printf("%d ", a);
}
}
while循环例子
#include <stdio.h>
int main()
{
int a = 0;
while (a < 11)
{
printf("%d ", a);
a++;
}
}
从对比可以看出来,for循环是把影响语句判断条件的调整语句a++直接放到for旁边的小括号去了,for 和 while 在实现循环的过程中都有初始化、判断、调整这三个部分,但是 for 循环的三个部
分⾮常集中,便于代码的维护,⽽如果代码较多的时候 while 循环的三个部分就⽐较分散,所以从形式上 for 循环要更优⼀些
(3)do while 语句
基本语句
do
{
执行语句
}while(表达式)
从基本语句形式上可以看出do while语句是先执行语句,然后放到while语句中去判断是否进行循环再来一遍。直接理解就是先做后循环
同样的例子,打印0到10的数字
int main()
{
int a = 0;
do
{
printf("%d ", a);
a++;
} while (a < 11);
}
结果都是一样的
(4).continue和break
break在switch里已经介绍过了,break在循环里用的比较多。其实已经可以把它当闸机来看待,只不过switch是从上往下流正常的河,而循环是环形的河。
举个例子
while里打印0到10的数字,如果我要在a=5的时候安装break闸机,那么它在a=5的时候就会被截断跳出循环了,不会继续打印了
#include <stdio.h>
int main()
{
int a = 0;
while (a < 11)
{
if (a == 5)
break;
printf("%d ", a);
a++;
}
}
continue在英文里是继续的意思,在c语言中它是跳过本次循环以及continue的语句,因为a++在continue后面,所以被跳过了会一直拿a=5去做判断,最后陷入死循环,而break是直接就结束了
运行结果有个光标在闪是陷入死循环中,与上面break结果有差异
#include <stdio.h>
int main()
{
int a = 0;
while (a < 11)
{
if (a == 5)
continue;
printf("%d ", a);
a++;
}
}
for循环里面break与while差不多,但是continue有区别,因为for循环调整部分和判断部分集中在一块,所以continue的跳过后面的语句并不会影响for循环的调整,而仅仅只会跳过a=5,所以结果是0,1,2,3,4,6,7,8,9,10
int main()
{
int a = 0;
for (a = 0; a < 11; a++)
{
if (a == 5)
continue;
printf("%d ", a);
}
}
do while break和continue和while语句几乎差不多,例子如下
break实例
int main()
{
int a = 0;
do
{
if (a == 5)
break;
printf("%d ", a);
a++;
} while (a < 11);
}
continue示例
int main()
{
int a = 0;
do
{
if (a == 5)
break;
printf("%d ", a);
a++;
} while (a < 11);
}