【问题标题】:Why does this give unexpected return value?为什么这会产生意想不到的返回值?
【发布时间】:2020-04-15 23:17:10
【问题描述】:

在codingbat上解决问题时使用相同的代码,但在我的IDE中没有

public class Bark {
public static void main(String[] args) {
    String lo = "hi there";
    String shank = lo.substring(0 , 2);
    if (shank.equals("hi")) return true;
    else return false;
}}

【问题讨论】:

  • main 的返回类型为 void。你正在返回布尔值。布尔值不是无效的。它是布尔值。您不应该从返回类型为 void 的方法返回布尔值。
  • @JBNizet 为什么要在codingbat上工作呢?
  • 很可能不是。或者codingbats实际上并没有执行你发布的代码,而是在编译运行之前对其进行修改。
  • @JBNizet 好的谢谢

标签: java if-statement substring return-value


【解决方案1】:

我的猜测是,您的期望与某种人工制品有关。当然,检查shank 应该显示它等于hi。您正在从 void 的方法返回一个布尔值,并且没有返回类型。考虑以下版本,它按预期工作:

public static void main(String[] args) {
    String lo = "hi there";
    String shank = lo.substring(0 , 2);
    if ("hi".equals(shank)) {
        System.out.println("EQUAL");
    }
    else {
        System.out.println("NOT EQUAL");
    }
}

也许 CodingBat 在您的代码中有一些不那么明显的钩子,导致代码在那里“工作”,但不在您的 IDE 中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-11
    • 1970-01-01
    • 2011-07-06
    • 1970-01-01
    • 2015-08-10
    相关资源
    最近更新 更多