我目前正在制作一个收银机示例,该示例会将更改读回给某人。我不允许将呼叫更改为主功能抽屉。我在里面创建了一个函数,它以递减循环开始。在for循环内部,我有一组if / if else语句要检查,如果它通过其中一个条件进入并检查另一组if / if else语句。有时它不会匹配第二组内的任何条件,因为for循环我没有达到正确的索引。如果它匹配第二组if / if else语句中的一个,它将i ++添加回来以便我可以返回并检查在索引不为空的情况下再次出现。我不知道是不是i ++给了我无限循环,或者我是否能够回到for循环来增加。我已经尝试用笔和纸进行检查,但我没有看到错误。如果你更喜欢它,这就是codepen:http://codepen.io/RawleJuglal/pen/EPXvQX函数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
{}
}
答案 0 :(得分:0)
是的,通过在循环中递增i,您可以根据未显示的条件进行循环终止。如果你的算法保证终止,你应该努力通过不增加循环变量来明确这个保证(并确保循环中的每个测试/函数调用都能保证终止)。
答案 1 :(得分:0)
如果第一个if总是为真(或至少是很多次),那么你的变量永远不会达到0值。
我建议你做这样的事情:
while(true){
if(condition){
//do your operations
}else{
break;
}
}
答案 2 :(得分:0)
你似乎误解了if-elseif阶梯的构造。程序执行流程基于满足条件流入其中一个分支。
在进入任何分支之前,检查可用选项。因此,您无需明确要求它“返回”并检查另一个条件。
希望这清除它!