黑马程序员技术交流社区
标题:
写出下面代码执行的结果(此题需写出分析过程)
[打印本页]
作者:
张强+
时间:
2011-10-18 00:47
标题:
写出下面代码执行的结果(此题需写出分析过程)
public class Test {
static boolean isTrue() {
System.out.println("isTrue");
return true;
}
static boolean isFalse() {
System.out.println("isFalse");
return false;
}
public static void main(String[] args) {
if (isTrue() || isFalse()) {
System.out.println(" || operate return true");
}
if (isFalse() & isTrue()) {
System.out.println(" & operate return true");
}
}
}
作者:
吉许
时间:
2011-10-18 09:28
结果为:
isTrue
|| operate return true
isFalse
isTrue
你这题要考虑到if语句中调用对象方法,和逻辑运算符的短路和非短路情况.
&&和||是短路逻辑运算符.&和|是非短路逻辑运算符
短路与运算符&&是 要求左右两个表达式都为true时结果才返回true,如果第一个表达式为false时后面的都不会判断了立刻返回false.
短路或运算符||为左右两个表达式有一个为true时就返回true,如果第一个表达式就为true 了它立刻返回true,不会在去判断第二个表达式.
而&和|是做为非短路逻辑运算符,是在两个表达式都计算判断后它才会返回最终的结果.
用短路逻辑运算符可以稍提高效率.
知识点明确了最终的结果一目了然.
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2