【问题标题】:Methods, more than one return?方法,不止一种返回?
【发布时间】:2013-11-23 19:52:45
【问题描述】:

我有以下方法:

从我学到的方法中,不是 void 的方法需要返回。对于以下示例,我可以看到两个返回,一个在 if() 之后,一个在最后。 对于此示例,如果 String s 不是数字,则它将布尔值返回为 false。这是有道理的。如果它是一个数字,那么它将检查它是否在区间内。我想我对在这种情况下是否可以有多个回报以及限制是什么(如果有的话)感到困惑。谢谢。

    private boolean ElementBienFormat(String s) {
    for (int i = 0; i < s.length(); i++) {
        if (!Character.isDigit(s.charAt(i))) {
            return false;
        }
    }

    int n = Integer.valueOf(s);

    return (n>=0 && n <=255);

【问题讨论】:

  • 在一个方法中有多个return 语句是完全可以的。只有一个回报将被执行。一旦returns 之一发生,程序就会离开该方法并且不会到达另一个。

标签: methods boolean return


【解决方案1】:

当控制到达return 时,方法将“退出”(返回)。因此,在这种情况下,只要输入String 中的字符不是数字,控件就会返回给调用者(使用适当的值)。

boolean success = ElementBienFormat( "a" ); // <-- control would go back here with the value of false. 

另一个快速说明是void 方法也可以有多个return 语句

private void Method( int n )
{
    if( n < 0 )
       return; 

    //...

    //implicit
    //return;
} 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-19
    • 1970-01-01
    • 2015-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-24
    相关资源
    最近更新 更多