一:while循环基本形式
while(判断表达式)
{
执行语句;
}
while语句执行流程图如下:
注意:当判断表达式为一非0常数时,若无break,将陷入死循环,所以在使用while语句时,为控 制循环次数,我们常这样写:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int i = 100;
while (i)
{
printf("%d\n",i);
i--;//每次循环结束i-1,当i=0时终止循环
}
return 0;
}
结果:输出100~1
二:判断表达式中++,--对结果的影响
若写为:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int i = 100;
while (i--)
{
printf("%d\n",i);
}
return 0;
}
结果:输出99~0
若写为:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int i = 100;
while (--i)
{
printf("%d\n",i);
}
return 0;
}
结果:输出99~1
解释:i--表示先用i与0进行比较,再执行i=i-1的操作;
--i表示先执行i=i-1的操作,再与0进行比较;
三:while的其余形式
1.若执行语句只有一句,可以不用{};
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int i = 100;
while (i)
printf("0\n");
return 0;
}
2.while后可不加语句,后跟分号,常用于单片机延时;例如:
#include<stdio.h>
int main()
{
int i = 100;
while (i);
return 0;
}
四:do-while循环
紧接上文,while后跟分号还可用于do-while循环中
基本形式:
do
{
执行语句;
}while (判断语句);
例子:
#include<stdio.h>
int main()
{
int i = 1;
do
{
printf("%d ", i);
i++;
}while (i <= 100);
return 0;
}
与while循环结构相比{}前加了一个do,while置于{}之后;但最大区别在于do-while循环的执行语句必定执行一次,所以常用于循环体至少执行一次的情景下,使用频率较少。