有两种while循环使用:一种是不带{}(语句块),一种的带{}(语句块)
while(表达式)
执行语句
while(表达式)
执行语句
while(表达式)
{
执行语句
}
do...while同样也有两种使用:一种是不带{}(语句块),一种的带{}(语句块)
do
执行语句
while(表达式);
do
{
执行语句
}
while(表达式);
PS:do...while(表达式); 后面要加分号(;)
for同样也有两种使用:一种是不带{}(语句块),一种的带{}(语句块)
for(表达式1;表达式2;表达式3)
执行语句
for(表达式1;表达式2;表达式3)
{
执行语句
}
PS:不带语句块的只能有一条执行语句,带语句块可以在语句块中可以有多条执行语句!!!
先进行讲解while循环和for循环,因为两者有相同点,最后再进行讲解do...while
#include
int main(void)
{
int n = 10;
while (n > 0)
printf("n:%d\n", n--);
return 0;
}
int main(void)
{
int n = 10;
while (n > 0)
printf("n:%d\n", n--);
return 0;
}
n:10
n:9
n:8
n:7
n:6
n:5
n:4
n:3
n:2
n:1
定义了一个int(整型)变量n,并且赋值10
执行while循环,先判断n是否大于0,
如果大于0进行printf格式化输出。
如果小于或者等于0,则跳过printf循环体执行语句,直接执行下面的语句(此处为return 0)
然后就是printf的n--,n--表示执行完printf这条语句才进行n-=1(n = n - 1)操作
#include
#include
int main(void)
{
int n = 5;
while (n > 0)
{
printf("n:%d\n", n);
printf("cos(n):%f\n", cos(n));
printf("sin(n):%f\n", sin(n));
printf("tan(n):%f\n", tan(n));
n--;
}
return 0;
}
n:5
cos(n):0.283662
sin(n):-0.958924
tan(n):-3.380515
n:4
cos(n):-0.653644
sin(n):-0.756802
tan(n):1.157821
n:3
cos(n):-0.989992
sin(n):0.141120
tan(n):-0.142547
n:2
cos(n):-0.416147
sin(n):0.909297
tan(n):-2.185040
n:1
cos(n):0.540302
sin(n):0.841471
tan(n):1.557408
PS:有语句块和无语句块主要看循环要执行的操作而选了,无语句块只能有一条执行语句,而有语句块可以在语句块中可以有多条执行语句
PS:有语句块和无语句块在下面的for循环和do...while循和就不再列出了
for循环跟while循环有相同的一点就是,在执行循环语句之前都是先判断,然后再执行
不过for循环比while循环多了循环的初始化和循环结束后的操作
for(表达式1;表达式2;表达式3)
执行语句
表达式1:for循环开始时候的初始化语句
表达式2:for循环判断语句,如果判断为false,则跳出for循环
表达式3:for循环执行语句执行完毕以后执行的语句
执行语句:我们自己要在for循环中执行的语句
#include
int main(void)
{
int n = 0;
for(n = 5; n > 0; n--)
printf("n:%d\n", n);
return 0;
}
n:5
n:4
n:3
n:2
n:1
定义了一个int(整型)的变量n,并且赋值0
然后执行for循环,
首先执行n = 5(表达式1,for循环初始化),
然后进行判断n是否大于0(for循环表达式2),如果n大于0执行循环语句,如果n小于或等于0,则跳出for循环(此处的return 0)
循环语句执行完成后,执行n--(n = n - 1)操作(for循环表达式3)
然后进行判断n是是否大于0(for循环表达式2),如此循环,
直到判断为false(此处的n小于或等于0,则跳出for循环)
因为跟while循环和for循环的执行顺序有很大不同
do
执行语句
while(表达式);
while循环和for循环都会先进行判断,然后再执行循环语句,而do...while循环是先执行循环语句然后再进行判断
#include
int main(void)
{
int n = 0;
do
printf("n:%d\n", n);
while (n > 0);
return 0;
}
n:0
定义一个int(整型)变量n,并且赋值0
由于do...while循环先执行循环语句,所以printf格式化输出n:0,然后再进行判断,
所以无论如何do...while循环都至少执行一次循环语句