黑马程序员技术交流社区

标题: 写出下面代码执行的结果(此题需写出分析过程) [打印本页]

作者: 张强+    时间: 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