如果你有一个if(boolean&& otherBoolean)语句,并且第一个布尔值为false,那么Java会检查otherBoolean吗? 我在想的是这样的事情:
if( text.length()>=4 && text.subString(0,4).equals("~yay") ){
//do stuff
}
因为如果文本长度小于4个字符,则subString方法将抛出错误,我觉得我需要有两个if语句
if(text.length()>=4){
if(text.subString(0,4).equals("~yay"){
//do stuff
}}
但这样做效果很差。 我想我可以写一个方法,比如
public boolean beginsWith(String text, String replace){
if(replace.length()>text.length()){return false;)
if(text.subString(0,replace.length()).equals(replace)){return true;}
return false;
我知道我可以使用它,但我真的只是想知道我是否可以使用第一个选项。
由于
顺便说一句,如果我弄乱了方法名称或其他东西,只需编辑它。我在打电话,所以无法查看我的代码。
答案 0 :(得分:1)
在Java中,&&
' short-circuits' - 也就是说,当它正在进行评估的条件时,它会跳出第一个错误的'有条件的。
因此,您的陈述是安全的,因为您需要至少有四个字符才能让您的代码达到第二个条件。
答案 1 :(得分:1)
实际上
TestHiveContext
与
相同if (a) {
if (b) {
//stuff
}
}
如果if (a && b) {
//stuff
}
为false,调试器将停止验证。
但是在更复杂的陈述中,你应该小心使用短路。