|
今天在java自学网群中有人提出了一个关于java程序的运行结果的疑惑,大家快过来帮忙解答下:( ^. E5 z8 x3 v7 m, r; Q! O
public static void main(String[] args) throws UnsupportedEncodingException { w0 c/ X" F! X s7 c8 T
boolean bool=false;
: ^1 D4 d+ P7 m4 d; V$ G if(bool=false||bool==false){
5 I5 @" u* f" A. s4 P System.out.println("真"+bool); i. H- y) T. z( y' R. Y
}else{; Z% M$ | Y" z+ C
System.out.println("假"+bool);
- \3 U. j6 H$ l9 D6 R5 `+ r }, r i! i B/ }! @! }
if(!bool!=false&&"字符串" instanceof String){
' k' U) B4 I2 o4 y6 \+ c System.out.println("真"+bool);
. Z1 h6 l& | O a: P a o- l }else{. ~% z/ l8 S i z+ S* ]
System.out.println("假"+bool);
' a+ F8 H8 N% s1 A! ], P% `5 D( @ }9 r8 h4 b& J3 Z
}
5 r* F4 m( G7 r7 ~( z1 d$ K0 ^
( C2 b5 K. A K5 `
* c' @! v/ B. ^1 K1 z) b% J4 k运行的结果是:1 B: k+ ^! P' B' u) s
真true
) H6 ?/ d2 W2 A8 ~假true/ W# u L/ a0 I7 x1 @* F& [8 j
$ e3 j9 B0 P" j2 E* p
这时有点疑惑,就像提问者所说的没有赋值为true啊# B4 W9 x5 e* G# Y
同时站长也把程序写了一下,运行了一下,结果的确如此,疑惑了?
$ b7 m" D. D6 ~: G" g* V然后想通过debug方式看看问题出在哪一步,结果更是诧异:
; [, [1 e5 I" X9 `# a N+ u真false
* x; \1 j1 h& \; @! J( m真false
+ X8 f' O. `8 j( J+ V: ]9 [, D( k2 s9 ?1 L
' ]; P+ |/ N: g. V5 M彻底晕了,谁来解释下问题在哪里?' D6 t) E: U3 d: q
: j1 v* T5 u8 y5 h9 s: `+ p6 c+ }3 l! T9 g! V; R
2 I. G0 m# P6 x3 l
( R+ @ Y$ F) w$ x F1 A# M
|
|