javazx 发表于 2015-4-22 21:40:16

很怪异的java程序题 好多人都不知道为什么

今天在java自学网群中有人提出了一个关于java程序的运行结果的疑惑,大家快过来帮忙解答下:
public static void main(String[] args) throws UnsupportedEncodingException {
                boolean bool=false;
                if(bool=false||bool==false){
                        System.out.println("真"+bool);
                }else{
                        System.out.println("假"+bool);
                }
                if(!bool!=false&&"字符串" instanceof String){
                        System.out.println("真"+bool);
                }else{
                        System.out.println("假"+bool);
                }
        }


运行的结果是:
真true
假true

这时有点疑惑,就像提问者所说的没有赋值为true啊
同时站长也把程序写了一下,运行了一下,结果的确如此,疑惑了?
然后想通过debug方式看看问题出在哪一步,结果更是诧异:
真false
真false


彻底晕了,谁来解释下问题在哪里?




javazx 发表于 2015-4-23 09:51:15

这个问题的结果是没问题的,主要考虑到了运算符的优先级!
自己看下优先级,就什么都明白了



linuvzg 发表于 2022-7-8 13:47:03

感谢楼主
页: [1]
查看完整版本: 很怪异的java程序题 好多人都不知道为什么