|
今天在java自学网群中有人提出了一个关于java程序的运行结果的疑惑,大家快过来帮忙解答下:
- K! K- k- ?3 V; {* ^public static void main(String[] args) throws UnsupportedEncodingException {
/ b9 Z A, B7 y2 [! v0 H boolean bool=false;
( t2 w# m& d- P/ C3 A! i1 w# \ if(bool=false||bool==false){3 y: b7 r- p9 ]- m- W
System.out.println("真"+bool);& n3 K3 N; j0 q6 Z9 ^' a; m
}else{
2 O# E& B8 x. ^. }, w System.out.println("假"+bool);: Q: I2 @% b" Q) h
}: Y0 X! G& u, ?3 p; w
if(!bool!=false&&"字符串" instanceof String){$ J7 W- a0 x# ^7 q! g. }
System.out.println("真"+bool);
; p3 s2 s1 I( z9 r }else{
7 ~( y: _; v! ~0 |2 _9 {! ~2 w System.out.println("假"+bool);
; E# K( D7 z. g }4 S9 w( D" r3 a0 |1 V4 T
}; {0 |1 Y* m& S
3 c! ?+ z4 g& d5 z% \( z3 C
1 a: y( Q6 ]# W/ L: p4 A ~
运行的结果是:
1 D# N* ]9 Z# g( F, \真true
+ L" r" o* }6 n3 P! X( B5 Y8 v, C; E+ f假true
4 M+ w& }6 }+ Q! g* q
4 z& F7 G5 `/ {这时有点疑惑,就像提问者所说的没有赋值为true啊9 ]$ G) M9 R; }& A0 Z0 t0 q
同时站长也把程序写了一下,运行了一下,结果的确如此,疑惑了?/ l, j2 i8 h. a" A% S
然后想通过debug方式看看问题出在哪一步,结果更是诧异:
" w4 r/ O! Z, @2 k& m- @真false& I+ \# \$ a u9 m/ n) i0 H
真false9 l4 c. ^2 }# y) O! Y% c
& V6 c& \7 f& F; o% T( N4 G# w8 t. Y+ l
彻底晕了,谁来解释下问题在哪里?
9 H' v: A7 ?: g
; R& d+ I. E) _
6 [, U( y6 V# p' p# t S, F' e( D8 X
" R9 h) x5 p! m9 Z6 c
|
|