我写了一段代码,直到满足条件为止。我有2个使用相同结构的类。在其中之一中,while(true)循环按预期执行;在另一个类中,程序在第一次递归后退出循环。
protected static boolean flag = true;
private static int value=0;
private static int limit=10;
.
.
.
public static int method(){
if (limit-value <=0)
{
...
}
else {
while(flag) {
if (limit-value > 0 ) {
*the action I want to perform until the condition is satisfied*
value++;
}
else if (limit==value)
{
flag = false;
}
return int_Value;
}
}
}
return int_Value;
}
我希望执行while(true)循环,直到满足条件为止(不止一次)。
答案 0 :(得分:1)
通过一些缩进,可以清楚地发现while循环中包含无条件的return
。
答案 1 :(得分:0)
如果您查看代码,则while循环会像这样
while(flag) {
if (limit-value > 0 ) {
*the action I want to perform until the condition is satisfied*
value++;
}
else if (limit==value)
{
flag = false;
}
return int_Value;
}
在执行if或if else语句后,有一个返回int_value语句导致了问题
答案 2 :(得分:0)
尽管我进行了调试,但最初我看不到它。在@ user3437460的建议之后,我执行了另一个调试会话,因此我能够找到:
似乎使用了附加的return语句!(return int_Value;), 一个如果if块。因此,程序将返回一个值,并且永远不会返回循环。 删除第一个return语句后,程序运行正常。