【问题标题】:Doesn't the return exit the loop and return true as the last statement in this code?return 不是退出循环并返回 true 作为此代码中的最后一条语句吗?
【发布时间】:2017-07-30 08:05:41
【问题描述】:

return 不是退出循环并返回true 作为此代码中的最后一条语句吗?如果是这样,它不总是返回 true 吗?

    private boolean isWord(String token) { 
       for (int i = 0; i < token.length(); i++) {
         char ch = toekn.charAt(i);
         if (!Character.isLetter(ch)) return false;
       }
       return true;
    }

【问题讨论】:

标签: java return


【解决方案1】:

return x 关键字从当前执行的函数返回值x。这就是它的工作原理。

return x 不会必然返回x 的唯一情况是return x 语句位于try { ... } 块内,然后是finally 块,而finally 块包含return y 语句。

如果您想退出当前循环,您应该使用break 而不是return

【讨论】:

  • 无论函数中有多少条语句,它是否总是从执行函数返回x
  • 我修改了我的答案以表明x 不一定会被return x 返回的唯一情况。
【解决方案2】:

有两个返回,一个在循环内。这个返回 false if(!Character.isLetter(ch))(如果 ch 不是字母)。当循环结束时,它到达return true

【讨论】:

    【解决方案3】:

    return 关键字在封闭函数内停止执行,并返回附加到它的值,在本例中为 return true

    但是,如果满足if 条件,则return false 退出函数,并将布尔值false 返回给调用代码。

    最后,在for-loop 完成迭代之前,永远不会到达return true,并且不会执行for loop 中的if 条件。

    我希望这能简洁地解释你的问题。

    【讨论】:

      猜你喜欢
      • 2023-03-31
      • 2014-09-30
      • 2020-04-13
      • 2017-02-09
      • 2012-03-18
      • 2019-07-31
      • 2019-08-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多