是否“返回”停止执行方法? [英] Does "return" stop the execution of a method?

查看:88
本文介绍了是否“返回”停止执行方法?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已按以下方式编写了一个方法:

I have programmed a method in the following way:

if (something) {
   return 1;
}
the rest of the code

在我看来,这个方法返回1,然后执行其余代码。真的可以吗?不 return 停止执行代码。它不是,我怎么能强迫一个方法停止?

It seems to me that the method returns 1 and then execute the rest of the code. Can it be the truth? Doesn't return stops the execution of the code. It it is not, how can I force a method to stop?

ADDED

这是代码(根据要求):

Here is the code (as requested):

    for (int i=availableTime; i>0; i=i-1) {
            final int sec = i;
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    String lbl = "<html>";
                    lbl += "</html>";
                    timeLeftLabel.setText(lbl);
            }
            });
            try {Thread.sleep(1000);} catch (InterruptedException e) {}
            parameterFromClientsListener = clientsListener.getValue(userName,parameterToGet);
            if (!parameterFromClientsListener.equals("null")) {
                output = parameterFromClientsListener;
                game.log.fine(userName + " set (by button) " + parameterToGet + " to be equal to " + output + " . [IMPORTANT]");
                return output;
            }
    }

    game.log.fine("The partner selection phase is expired.");
    // This code is executed if the Submit button was not pressed and the time run out.
    if (parameterToGet.equals("partner")) {
        tellMyChoice(parameterToGet, this.partnerFromForm, "timer of" + field);
        output = this.partnerFromForm;
    }
    game.log.fine(parameterToGet + " was submitted by timer (not by OK button).");
    } else {
    output = parameterFromClientsListener;
    }
    game.log.fine(userName + " set (by timer)" + parameterToGet + " to be equal to " + output + " . [IMPORTANT]");
    return output;
}

我运行此代码两次。在每种情况下,我都会生成一个日志文件。在两个日志文件中,我看到set(by button)语句(在 return 之前)。但问题是在第二个日志文件中我确实看到了计时器语句。如果达到设置(按钮),则不应该达到。怎么会这样?我需要提一下,设置(按钮)和计时器不会出现在我的代码中的任何其他位置(它们只出现一次)。

I run this code two times. In every case I generate a log-file. In both log files I see "set (by button)" statement (which is straight before the return). But the problem is that in the second log file I do see "timer of" statement. Which should not be reached if the "set (by button)" is reached. How can it be? I need to mention that "set (by button)" and "timer of" do not occur anywhere else in my code (they occur only once).

已添加3

从代码中我可以看到,我没有 finally 语句。 / p>

As you can see from the code I do not have the finally statement.

推荐答案

这不是真的,return语句将停止以下任何代码。 (唯一的例外是return语句位于try {}块之后,后面有一个finally {}块。

This is not true, the return statement will stop any following code. (With the only exception being that the return statement is in a try{} block that has a finally{} block afterwards.

    if(0==0){
       return;
    }
    System.out.println("This will not print.");

这篇关于是否“返回”停止执行方法?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆