语法结构
while(表达式)
循环语句;
while 的语法结构与 if 语法结构类似,如果表达式中结果为真,则进入循环语句,为假则不执行。
#include<stdio.h>
int main()
{
int i = 1;
while(i <= 10)
{
printf("%d\n",i);
i++;
}
return 0;
}
以这段代码为例,循环语句的逻辑就是:
i 的初始值为 1 ,满足 i 小于等于 10 ,进入循环。
第一次循环:打印 i ,此时为 1 ,i++ 后变为 2 。
第一次循环结束,此时为 2 ,依旧符合要求,进入第二次循环。
第二次循环:打印 i ,此时为 2 ,i++ 后变为 3 。
第二次循环结束,此时为 3 ,符合要求,进入第三次循环.......
...........
当第十次循环结束后,i = 11 不再符合要求,不再循环。
最终打印得到的结果就是 1-10
---------------------------------------------------------------------------------------------------------------------------------
while 中的 break
昨天的 if 语句中出现了 break ,while 循环语句中的 break 效果可以参考 if 语句中的 break ,跳出循环。以下面代码为例:
#include<stdio.h>
int main()
{
int i = 1;
while(i <= 10)
{
if(i == 5)
break;
printf("%d\n",i);
i++;
}
return 0;
}
与上面代码不同的是,这段代码循环语句中加入了 if 语句,当 i == 5 时跳出循环。也就是说这段代码的循环逻辑前四次都与前面相同,
当第五次循环时,i 为 5 进入 if 语句,执行 break ,跳出循环,这些操作是在打印 i 之前,也就是说 i 还没来得及打印就跳出循环了,最终得到打印结果为 1-4
总结一下,在 while 循环中,break 用于永久的终止循环。
---------------------------------------------------------------------------------------------------------------------------------
while 中的 continue
#include<stdio.h>
int main()
{
int i = 1;
while(i <= 10)
{
if(i == 5)
continue;
printf("%d\n",i);
i++;
}
return 0;
}
还是这段代码,不同的是将 break 修改为了 continue 。
当程序运行的时候得到的结果是打印出 1 2 3 4 后依旧持续运行。
在 while 循环中 continue 作用是跳过本次循环 continue 后面的代码。所以当运行到第五次循环, i 为 5 时,执行 continue 语句,跳过本次循环后面的代码,跳过时 i 仍为 5 所以再次循环后又重复了这个过程,这就造成了一个死循环,这也就是为何打印出 1 2 3 4 后仍继续运行的原因。