黑马程序员技术交流社区

标题: 写出结果。请帮我分析问题。 [打印本页]

作者: 廉伟    时间: 2012-9-4 18:56
标题: 写出结果。请帮我分析问题。
本帖最后由 廉伟 于 2012-9-4 22:27 编辑

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");
                }
        }
}

作者: 杨卫腾    时间: 2012-9-4 19:04
本帖最后由 杨卫腾 于 2012-9-4 19:12 编辑

结果是:
        istrue
        || operate return true

        isfalse
        istrue
        
楼主的问题应该是 运算符:|| 和 &  的用法吧!
if(isFalse() & isTrue())  是假所以不输出结果。  

                &和&&的区别和联系:
                1. 这两者的左右两边都是boolean类型。

                2. &的左边为false时,还要对右边进行判断。而&&的左边为false时,右边的不用进行判断。

                3. &用于位运算。


                |和||的区别和联系:
                1. |和||的左右两边都要使用boolean类型。

                2. |的左边为true时,还要对右边进行判断。而||的左边为true时,右边的表达式将不再进行运算。

                3. |用于位运算。


作者: 彭润生    时间: 2012-9-4 19:10
||是逻辑运算符或有一个真即为真,如果第一个为真则不执行后面的代码而直接执行{}中的代码,&是位运算符与二进制下运算两边同时为1则结果为1否则为0,Java里假为0所以二进制都为0,所以不执行{}里的语句。
所以结果是
isTrue
|| operate return true
isFalse
isTrue
作者: 杨习平    时间: 2012-9-4 19:18
&与&&区别
        &&如果可以通过第一表达式的值判断出整个式子的结果,那么后面的运算不会在运行。
        & 无论怎样,会将整个式子运算完成后求出结果
       
        按位&  |  可以操作数字
        断路&& || 只能操作boolean类型数据
       
        &&还是& 原则就是如果有一个为false,结果就为false
        || 还是| 原则就是如果有一个为真,结果就为真


   结果是:
     isTrue
       isFalse
       || operate return true
       isFalse
       isTrue
作者: 乔九    时间: 2012-9-4 19:50
楼上的结果好像错了吧||运算原则就是如果有一个为真,结果就为真结果应该是isTrue
|| operate return true不会isFalse了吧
作者: 王陶成    时间: 2012-9-4 21:44
这个题真好,学习了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2