【发布时间】:2016-01-12 18:08:23
【问题描述】:
我目前正在开发一个收银机示例,该示例将零钱读回给一个人。我不允许更改对主函数抽屉的调用。我在其中创建了一个函数,该函数以递减的 for 循环开头。在该 for 循环中,我有一组 if/if else 语句要检查,如果它传递它输入的其中一个条件并检查另一组 if/if else 语句。有时它不会匹配第二组中的任何条件,因为 for 循环 i 没有达到正确的索引。如果它匹配第二组中的一个if/if else 语句将 i++ 添加回来,以便我可以返回并再次检查,以防索引不为空。我不知道是 i++ 给了我无限循环还是我不能回到for循环以增加。我试过用笔和纸检查它,但我没有看到错误。如果您愿意看的话,这就是 codepen:http://codepen.io/RawleJuglal/pen/EPXvQX Function findNextChangeDenom。
for(i=highNumber;i>=0;i--)
{
if(condition)
if(condition)
{
do some code
i++ //add
}
else if(condition)
{
do some code
i++
}
else if(condition)
{
do some code
i++
}
else if(condition)
{}
else
{}
}
【问题讨论】:
-
为什么所有 else if 块都有 i++?那我就一点也不减了。这就是为什么你有一个无限循环
-
这个想法是,如果它不满足第一组 if/else if 语句,它就不会达到执行 i++ 的第二组,并且会像往常一样继续递减
-
但是如果它一直通过(你所说的第一组)怎么办?也许这就是正在发生的事情。
标签: infinite-loop