C语言循环语句:while、do...while、for

1)简单介绍一下C语言的三个循环语句:

 

①while循环:

有两种while循环使用:一种是不带{}(语句块),一种的带{}(语句块)

不带语句块的:

 while(表达式)
     执行语句while(表达式)
     执行语句

带语句块的:

 while(表达式)
 {
     执行语句
 }

 

②do...while循环:

do...while同样也有两种使用:一种是不带{}(语句块),一种的带{}(语句块)

不带语句块的:

do
   执行语句
while(表达式);

带语句块的:

do
{
  执行语句
}
while(表达式);

PS:do...while(表达式);    后面要加分号(;)

 

 

 

 

③for循环

for同样也有两种使用:一种是不带{}(语句块),一种的带{}(语句块)

不带语句块的:

for(表达式1;表达式2;表达式3)
        执行语句

带语句块的:

for(表达式1;表达式2;表达式3)
{
        执行语句
}

PS:不带语句块的只能有一条执行语句,带语句块可以在语句块中可以有多条执行语句!!!

 

2)while,do...while,for三种循环的使用

 

先进行讲解while循环和for循环,因为两者有相同点,最后再进行讲解do...while

 

①while循环:

PS:这里就不再介绍while循环语句了(在1部分已经列出)

不带语句块的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)操作

 

带语句块的while循环例子:

#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循环:

for循环跟while循环有相同的一点就是,在执行循环语句之前都是先判断,然后再执行

不过for循环比while循环多了循环的初始化循环结束后的操作

讲解一下for循环语句:

 

for(表达式1;表达式2;表达式3)
        执行语句

先说执行顺序:表达式1->表达式2->执行语句->表达式3->表达式2->执行语句->表达式3->表达式2->......(以此循环)

表达式1:for循环开始时候的初始化语句

表达式2:for循环判断语句,如果判断为false,则跳出for循环

表达式3:for循环执行语句执行完毕以后执行的语句

执行语句:我们自己要在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循环)

PS:for循环表达式1比表达式2(for循环判断要先执行),所以for循环的表达式1是无论如何也会执行的

 

③do...while循环:

为什么do...while循环要放最后?

因为跟while循环和for循环的执行顺序有很大不同

 

首先讲解一下do...while循环的执行顺序:

 

do
   执行语句
while(表达式);

跟while循环和for循环不同的地方就是:

while循环和for循环都会先进行判断,然后再执行循环语句,而do...while循环是先执行循环语句然后再进行判断

 

一个简单的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循环都至少执行一次循环语句

PS:do...while循环,while(表达式)后面要有一个分号(;)!!!

 

 

 

 

 

 

你可能感兴趣的:(C语言)