while循环
while循环的结构:
while(表达式)
循环语句;
例如:在屏幕上打印1-10的数字
int main()
{
int a = 1; //初始化
while (a <= 10) //判断部分
{
printf("%d ", a);
a++; //改动部分
}
return 0;
}
while语句中的break和continue
break用于永久终止循环,只要在循环中遇到break,就会直接跳出循环
例如:
int main()
{
int a = 1;
while (a <= 10)
{
if (a == 7)
break;
printf("%d ", a);
a++;
}
return 0;
}
打印结果为1 2 3 4 5 6,因为a=7的时候,循环终止了,所以之后的都不打印
continue是终止本次循环,只是单独这次的循环不会进行,但是还会跳回while语句再次判断,然后继续循环
但是有时会出现和break一样的结果:
int main()
{
int a = 1;
while (a <= 10)
{
if (a == 7)
continue;
printf("%d ", a);
a++;
}
return 0;
}
这个代码的打印结果也是:1 2 3 4 5 6,但是是因为a=7的时候终止了本次后续的循环,导致a没有+1,所以之后都是a=7,每一次都会跳过循环,导致这样的结果
所以想要达到打印1-10中除了7以外的数字的话,需要换一种写法:
int main()
{
int a = 0;
while (a <= 9)
{
a++;
if (a == 7)
continue;
printf("%d ", a);
}
return 0;
}
这样子的打印结果就是:1 2 3 4 5 6 8 9 10
把a++放在continue前面,第一次跳过循环时a=7,再次循环的时候a=8就可以继续参与循环了
重点:break和continue的区别就在于:break是完全终止循环,只要见到break了,循环全部终止;但是continue只是跳过本次循环,跳过了之后,下次循环会继续进行。
while循环的使用场景
int main()
{
while ((getchar()) != EOF)
;
return 0;
}
这个代码段是用来清理缓存区的,getchar的作用是读取键盘输入在缓冲区的字符等内容,EOF表示的是读取的内容是不是空的,如果不是空的就一直继续循环,每一次读取之后直接把读取到的字符什么的直接丢掉,直到把缓存区清空