很怪异的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
彻底晕了,谁来解释下问题在哪里?
这个问题的结果是没问题的,主要考虑到了运算符的优先级!
自己看下优先级,就什么都明白了
感谢楼主
页:
[1]