06-终止while循环
6.2.1 终止 while 循环
while 循环有一点非常重要:在构建 while 循环时,必须让测试表达式的值有变化,表达式最终要为假。否则,循环就不会终止(实际上,可以使用 break 和 if 语句来终止循环,但是你尚未学到)。考虑下面的例子:
index = 1;
while (index < 5)
printf("Good morning!\n");
上面的程序段将打印无数次 Good morning! 。为什么?因为循环中 index 的值一直都是原来的值 1 ,不曾变过。现在,考虑下面的程序段:
index = 1;
while (--index < 5)
printf("Good morning!\n");
这段程序也好不到哪里去。虽然改变了 index 的值,但是改错了!不过,这个版本至少在 index 减少到其类型可容纳的最小负值并变成最大正值时会终止循环(第3章3.4.2节中的 toobig.c 程序解释过,最大正值加 1 一般会得到一个负值;类似地,最小负值减1一般会得到最大正值)。