为什么这会给出意想不到的 return 值?
Why does this give unexpected return value?
在 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;
}}
我的猜测是您的期望与某种人工制品有关。当然,对 shank
的检查应该表明它等于 hi
。您正在 return 从 void
方法中获取布尔值,并且没有 return 类型。考虑以下版本,它按预期工作:
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 在您的代码中有一些不太明显的钩子,导致代码 "working" 在那里,但不在您的 IDE.
在 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;
}}
我的猜测是您的期望与某种人工制品有关。当然,对 shank
的检查应该表明它等于 hi
。您正在 return 从 void
方法中获取布尔值,并且没有 return 类型。考虑以下版本,它按预期工作:
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 在您的代码中有一些不太明显的钩子,导致代码 "working" 在那里,但不在您的 IDE.