|
今天在java自学网群中有人提出了一个关于java程序的运行结果的疑惑,大家快过来帮忙解答下:
: V* u! \0 c: l, I5 i2 N. }public static void main(String[] args) throws UnsupportedEncodingException {- Z7 R( w/ Z" o# @& E$ ~
boolean bool=false;' Y" Q; A( D) _1 {0 r l1 }9 ~6 Y( J
if(bool=false||bool==false){+ b2 W. t# E; t: w
System.out.println("真"+bool);
! e6 _# [. U; p% C }else{ d. i) ?$ _: Z" f
System.out.println("假"+bool);
2 k/ M; w! m7 e }! M% }) L7 |8 }$ D+ {' K H1 Z; A
if(!bool!=false&&"字符串" instanceof String){( n5 U* _% Y% F9 R
System.out.println("真"+bool);+ ]; {2 d G; D% l1 ]# f& {
}else{
8 z T2 A/ `4 D; B7 y% H System.out.println("假"+bool);
1 T6 F6 `" E/ { }& ]2 j; H3 m! G0 c8 H+ L7 X! O
}
) \# w5 Z" h7 Y: K {0 E9 a* W8 d/ G3 Q% m- [/ D+ W/ t f" h3 j( K
0 m) m' d' s( @0 n- p2 w* b+ R5 E( n
运行的结果是:# F% w8 o A" }3 _, A0 p( u
真true, `/ z9 v* a& w
假true! b) z4 P# c2 ]6 A# {* M& C$ y
- R7 \; M" O. Q& a这时有点疑惑,就像提问者所说的没有赋值为true啊
3 q# ~. I! n- E同时站长也把程序写了一下,运行了一下,结果的确如此,疑惑了?8 P( j; M+ ~/ \) V
然后想通过debug方式看看问题出在哪一步,结果更是诧异:
2 F/ {* ~# ?) z6 ?, X! t$ {真false5 E, \, c$ |: S9 N2 Q
真false/ o& Z+ r0 j1 K5 I% F# D
0 D3 k& a+ @. J. q$ m+ R3 b3 a
; m2 B2 u$ ^! a p0 v8 T# ^
彻底晕了,谁来解释下问题在哪里?6 q1 k, b6 {# x
: e: ]& F8 ]" v" M1 @, L% a P
2 k7 `6 b. z7 h' z1 d! `& ^ q) s
& g& L% Z! @/ q0 `+ K6 ^' ]# X3 ^+ S( _: z9 T* v% ]
|
|