我将在过去的试卷上查看一系列问题.其中一个问题是boolean类型.
如果名称不是Thomas,则应返回false,如果是,则返回true.
这是我的代码:
public class QuestionTwo
{
String name;
public static void main(String [] args){
System.out.println(nameTest("Thomas"));
}
public static boolean nameTest(String name){
if(!name.equals("Thomas"));
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我的代码应该返回true,但它会一直返回false?有人可以告诉我,我的代码似乎出了问题吗?请原谅我仍在学习的任何愚蠢的错误.非常感谢.
删除结尾处的分号if statement.
if(!name.equals("Thomas"))
Run Code Online (Sandbox Code Playgroud)
同样好的做法是这样做equals test:
if(!"Thomas".equals(name))
Run Code Online (Sandbox Code Playgroud)
在这种情况下,如果name为null,则不会获得NPE.
删除分号
if(!name.equals("Thomas")) return false;
Run Code Online (Sandbox Code Playgroud)
你写它的方式,是两个单独的陈述.首先,如果名字不等于托马斯那么什么都不做.然后第二,返回false.