C++ while(do-while)循环详解(font-family)
C++ while(do-while)循环详解
有两个重要组成部分:
- 进行 true 值或 false 值判断的表达式;
- 只要表达式为 true 就重复执行的语句或块;
include程序输出结果:using namespace std; int main() { int count = 1; while (count<= 5) { cout << "Hello "; count = count + 1; } cout << "\nThat&39;s all!\n"; return 0; }
Hello Hello Hello Hello HelloThat&39;s all!
分析这个程序。在第 6 行中,整数变量 count 被定义并用值 1 初始化。在第 7 行中,while 循环以下面的语句开头:while (count<= 5)
该语句测试变量 count 以确定其值是否小于或等于 5。因为它确实小于 5,所以循环体(第 9 行和第 10 行)中的语句被执行:cout << "Hello ";count = count + 1;
第 9 行中的语句将显示字符串“Hello”。第 10 行中的语句则给变量 count 加上 1,使其值变成了 2。这是循环体中的最后一个语句,因此在执行之后循环又一次开始。它再次测试表达式“count<=5”,并且由于仍然为 true,循环体中的语句将再次执行,该循环不断重复,直到变量 count 等于 6,使表达式“count<=5”为 false,然后退出循环,如图 2 所示。图 2 while 循环工作原理循环的每一次执行称为。以上示例中的循环将执行 5 次迭代,直至表达式“count<=5”被测试并且发现为 false,导致循环终止,然后程序继续执行该循环之后的语句。控制循环迭代次数的变量称为,在上面的例子中,count 就是循环控制变量。while 是一个预测试循环
while 循环是一个预测试循环。这意味着它会在每次迭代之前测试其状态。如果测试表达式为 false,则循环将永远不会迭代。如果要确保一个 while 循环至少执行一次,则必须初始化相关的数据,使测试表达式一开始即为 true。例如,注意上面程序中变量 count 的定义:int count = 1;
count 变量被初始化为值 1。如果数字已经被初始化为大于 5 的值,则循环将永远不会执行,如下面的程序段所示:int count = 6; while (count <= 5) { cout << "Hello "; count = count + 1; }
无限循环
除极少数情况外,循环必须包括一种终止方式。这意味着循环中的某些内容必须最终使测试表达式为 false。在上面程序中,当表达式“count <= 5”变为 false 时,循环停止。如果循环没有停止的方式,则称为。无限循环将持续重复,直到程序中断,示例如下:int count = 1; while (count<= 5) { cout << "Hello "; }这是一个无限循环,因为它不包含更改 count 变量值的语句。每次测试表达式“count <= 5”时,count 的值都是 1。
小心分号
通过在 while 循环的第一行之后意外地放置一个分号也可以创建无限循环,示例如下:int count = 1; while (count <= 5) ; //该分号是一个错误 { cout << "Hello "; count = count + 1; }因为编译器在发现开始语句块的大括号之前看见了第一行末尾的分号,所以它会在分号的位置结束循环。尤其是它会将分号前面丢失的语句解释为空语句,也就是什么都不做的语句,然后将 while 语句和它后面的任何内容断开。对于编译器来说,整个循环看起来就像下面这样:
while(count<= 5);
这个 while 循环将持续执行空语句,当然它永远不会执行任何操作。该程序似乎“陷入迷惘”,因为没有任何屏幕输出,也不会显示任何活动。不要忘记大括号
在编写循环语句时,如果有条件执行的语句是一个语句块,则不要忘记将所有的语句都包含在一组大括号中。如果大括号意外被忽略,则 while 语句有条件执行的仅仅是下一个语句,请看下面的代码示例:int count = 1; //该循环忘记使用大括号 while (count <= 5) cout << "Hello "; count = count + 1;在这段代码中,只有一个语句,也就是 cout 语句,是在 while 循环的主体中。给变量 count 加 1 的语句不在循环体内,所以 count 的值保持为 1,循环测试条件永远为 true。循环将一遍又一遍地打印“Hello”字符串,直到用户停止程序。
不要混清 == 与 =类似于怦然心动的电影推荐
循环的另一个常见陷阱是,在打算使用 == 运算符时,却意外地使用了 = 运算符。例如,以下示例就是一个无限循环,因为作为循环条件的测试表达式每次都给 remainder 赋值为 1,而不是测试 remainder 是否等于 1:while (remainder = 1) //错误:条件表达式为赋值语句 { cout << "Enter a number: "; cin >> num; remainder = num % 2; }请记住,任何非零值都将被判断为 true。
do-while 循环
除了 while 循环之外,C++ 还提供了。do-while 循环看起来类似于把一个 while 循环倒过来。图 3 显示了其格式和流程图,右侧流程图直观地描绘了其工作原理。图 3 do-while循环的语句结构及流程图与 while 循环一样,如果循环体中只有一个有条件执行的语句,则可以省略大括号。注意,do-while 循环必须在测试表达式的右括号后用分号终止。除了外观形式,因此,即使测试表达式在开始时为 false,do-while 也至少要执行一次迭代。例如,在以下 while 循环中,cout 语句根本不会执行:int x = 1; while (x < 0) cout << x << endl;但是在以下 do-while 循环中的 cout 语句将执行一次,因为 do-while 循环在迭代结束之前不会判断表达式 x<0:
int x = 1; do cout << x << endl; while (x < 0);如果要确保循环执行至少一次,则应使用 do-while 循环。
版权声明:
本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。