while(true)循环仅执行一次

时间:2019-07-24 03:35:26

标签: java while-loop

我写了一段代码,直到满足条件为止。我有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)循环,直到满足条件为止(不止一次)。

3 个答案:

答案 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语句后,程序运行正常。