这是一个无限循环?

时间:2016-09-27 23:34:40

标签: c++ infinite-loop

我为comp sci类介绍了这个程序。所有这一切都是使用while循环的演示。我的教授将此程序标记为具有无限循环,但我不理解它是如何无限循环,因为它在输入-1时终止。

{Binding}

3 个答案:

答案 0 :(得分:6)

显示的代码中存在多个错误。

  1. accountNum在使用之前未初始化。这会导致不确定的行为。

  2. 即使输入了-1,循环仍会继续,并且仍然必须输入所有剩余的输入。

  3. 如果输入的输入无效,std::cin将进入错误状态,并将永久循环。

答案 1 :(得分:1)

显示的代码输入为-1。如果输入流关闭或遇到错误(例如在其中一个数字中键入非数字值),则永远不会收到值-1。

除此之外,while循环条件仅在每次循环迭代开始时进行测试,它不是保护测试 - 因此输入-1的帐户仍然需要输入所有剩余值

答案 2 :(得分:0)

我认为这是因为在循环中从未满足-1的条件。

我看到第一个条目:

cin >> accountNum;

我认为这绝不是-1。

要结束循环,您需要在循环代码的末尾附近将accountNum上的值存储为-1。