在for循环中的if语句中的return语句之后会发生什么

时间:2013-08-15 00:35:12

标签: java loops if-statement return

我想保持简短。返回true后会发生什么?是否会停止for - 循环并返回do - while循环?我很困惑;请提供详细说明。

for (int i = 0; i < 6; i++) 
    {
        int pick;
        do 
        {
            pick = (int) Math.floor(Math.random() * 50 + 1);
        } 
        while (numberGone(pick, gui.numbers, i)); 
        gui.numbers[i].setText("" + pick);
    }
    boolean numberGone(int num, JTextField[] pastNums, int count) 
    { 
        for (int i = 0; i < count; i++) 
        {
            if (Integer.parseInt(pastNums[i].getText()) == num) 
            {
                return true;
            }
        }
        return false;
    }

2 个答案:

答案 0 :(得分:2)

一旦方法遇到第一个return语句,方法就会返回控件。 return语句之后的任何代码都不会被执行。所以在你的代码中:

boolean numberGone(int num, JTextField[] pastNums, int count) 
    { 
        for (int i = 0; i < count; i++) 
        {
            if (Integer.parseInt(pastNums[i].getText()) == num) 
            {
                // if this is executed, execution of this method will return from here
                return true;
            }
        }
        // this will be executed only when if statement is not executed and for loop finishes gracefully
        return false;
    }

注意:如果您不想在满足if条件时从方法返回并只是结束循环,那么请使用break而不是return

答案 1 :(得分:0)

当遇到return语句时,该函数总是退出。之后不会发表声明 唯一的例外是try catch finally阻止 始终会执行finally阻止,无论是否遇到return