|
今天在java自学网群中有人提出了一个关于java程序的运行结果的疑惑,大家快过来帮忙解答下:2 Z, H! P: A2 L! ]
public static void main(String[] args) throws UnsupportedEncodingException {
( u+ D9 @$ y0 Q boolean bool=false;
& \# p( W0 w) S1 {/ ^% f# e6 t if(bool=false||bool==false){
: l4 a/ J: `" p0 g- p System.out.println("真"+bool);: c8 x) N$ E2 T: _6 `2 q, z
}else{
& L$ p- f: B/ ] e6 @% j5 z% ? System.out.println("假"+bool);
' S3 c& l. v; s0 m0 M) ` }
! D4 B! Q1 p* w# `/ v; T" O% E% a if(!bool!=false&&"字符串" instanceof String){7 R0 A2 ]0 V7 w9 s N$ Q( }8 g/ S
System.out.println("真"+bool);! U% l0 E; z! F) p0 u5 x& H4 }% ?
}else{6 b4 v4 n& R9 F) L1 Q: a
System.out.println("假"+bool);8 ~8 z# ?3 @6 v1 D9 }
}
" x y A$ Y) j; ^' I/ R& v }
3 K6 F1 {5 _% R2 X; C; A' y
$ h3 w. h( V6 ~
; n3 q w: Z2 j" g, U @: `运行的结果是: R( m" D% _ t* q; D0 M
真true. Z6 h3 d- Q8 M
假true% J" }; r$ f; c6 v9 L) C* j2 e
I& `) q5 g" R% @# x这时有点疑惑,就像提问者所说的没有赋值为true啊9 r" k! {& v' g2 d9 n# I1 c
同时站长也把程序写了一下,运行了一下,结果的确如此,疑惑了?
1 j. s$ z1 {1 s! {; J, ~' S7 Q$ s. V2 q然后想通过debug方式看看问题出在哪一步,结果更是诧异:
8 U4 u) ]4 U: h真false
# u! p; T" O( C" d0 N/ Z; w真false- W# a r; b' I3 R1 B v
2 s4 ~" v) z- v: Q
! r- t$ W# y4 s F q2 l+ @$ y% S彻底晕了,谁来解释下问题在哪里?
' y' E+ |5 j Q1 |. D% O/ d" w* Z% h
; d- }* u; `" c2 _0 Y4 m& Z i7 z& E9 \7 u
- w7 \( J+ P8 t6 n
|
|