很抱歉丑陋的代码。(我是一名新的尝试自学Java的编码器。)我只是想知道为什么http://codingbat.com上的编译器拒绝运行此代码,而是返回错误:
This method must return a result of type String
这是代码.......................
public String startOz(String str) {
if (str.length() <= 2) {
return str;
}
else if (str.charAt(0) == 'o' && str.charAt(1) != 'z') {
return "o";
}
else if (str.charAt(1) == 'z' && str.charAt(0) != 'o') {
return "z";
}
else if (str.substring(0 , 3).equals("oz")) {
return "oz";
}
}
如果您是在实际的IDE(例如eclipse)上运行此命令,则会收到错误消息:
missing return statement
现在您可能在想,
“但是Ruchir,我已经有4个返回语句!”
号这些return语句都在if语句,这意味着如果不执行if语句,编译器将不知道该怎么回报。这将引发空指针异常。
如果您确定将执行其中一个if语句,则只需输入一个空的return语句即可:
return;
通过创建一个没有void的方法,就是说它会返回一些东西。
只需在if语句之外添加return语句。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句