我为comp sci类介绍了这个程序。所有这一切都是使用while循环的演示。我的教授将此程序标记为具有无限循环,但我不理解它是如何无限循环,因为它在输入-1时终止。
{Binding}
答案 0 :(得分:6)
显示的代码中存在多个错误。
accountNum
在使用之前未初始化。这会导致不确定的行为。
即使输入了-1
,循环仍会继续,并且仍然必须输入所有剩余的输入。
如果输入的输入无效,std::cin
将进入错误状态,并将永久循环。
答案 1 :(得分:1)
显示的代码输入为-1。如果输入流关闭或遇到错误(例如在其中一个数字中键入非数字值),则永远不会收到值-1。
除此之外,while循环条件仅在每次循环迭代开始时进行测试,它不是保护测试 - 因此输入-1的帐户仍然需要输入所有剩余值
答案 2 :(得分:0)
我认为这是因为在循环中从未满足-1的条件。
我看到第一个条目:
cin >> accountNum;
我认为这绝不是-1。
要结束循环,您需要在循环代码的末尾附近将accountNum上的值存储为-1。