|
今天在java自学网群中有人提出了一个关于java程序的运行结果的疑惑,大家快过来帮忙解答下:" H: i/ ^- K! }# z: u# O/ k5 |
public static void main(String[] args) throws UnsupportedEncodingException {
& i* [3 E& @& |7 I boolean bool=false;! f% w2 N/ s2 z* b9 J5 L% S0 t
if(bool=false||bool==false){; q2 o8 F* {3 f, d
System.out.println("真"+bool);" x6 B) D( r4 N1 k% T, O4 S8 i+ B
}else{
4 [. I4 b9 k$ n# C System.out.println("假"+bool);' Y( E q f. z& O' e
}
: [8 h) c; }0 H if(!bool!=false&&"字符串" instanceof String){
( a4 B: w! }! d7 a System.out.println("真"+bool);
5 R' C; T* |% N5 F1 F) n }else{
! M# @5 T" `# J8 _! V System.out.println("假"+bool);
6 _% H, z" X2 z7 j+ Y) M) R }4 x2 P: z5 |# ~' d3 |
}
; ]( _% N& s2 p0 |* N8 l o V/ `5 T/ h- x. V2 k
& u( o7 |( h% S# v运行的结果是:7 _+ Z1 X/ G! o- D! U1 B! y
真true
5 S* e: ^( q' W' ^假true) m# P& x& R) J' @* ?
9 ^ s" A# r3 ?6 U+ y
这时有点疑惑,就像提问者所说的没有赋值为true啊
W* \0 ~' J3 N g$ d; A+ k2 ?+ ?同时站长也把程序写了一下,运行了一下,结果的确如此,疑惑了?& K: ^7 Y! m4 @- G$ L% P. B
然后想通过debug方式看看问题出在哪一步,结果更是诧异:+ h0 ?, C5 Q R# F% W4 o
真false
/ P$ R: T5 H" U真false
3 `8 B8 k, U* G5 b: D, h ~8 p( I, g4 z4 J& ~3 `# j
" k1 ~. ~- U6 Y; I. ?8 |彻底晕了,谁来解释下问题在哪里?
* D1 s4 t2 m/ t3 N" S' ~5 z
8 v7 j0 A! a C4 M; n/ p# ?6 b {2 p- t' h, `, I
' A9 i9 P. o+ V# v
D. N4 B7 Z9 O1 l7 {: a! e/ j( I; b" F' f |
|