|
今天在java自学网群中有人提出了一个关于java程序的运行结果的疑惑,大家快过来帮忙解答下:
+ ?( m& c) j6 b" Fpublic static void main(String[] args) throws UnsupportedEncodingException {3 p- I: l8 B* ?7 P6 N
boolean bool=false;! U$ z* Y% U( A- D9 p- w X
if(bool=false||bool==false){7 q- Q2 G& }( }% p; M/ B& C" N
System.out.println("真"+bool);
# a1 P2 y" V5 j; Z0 D+ X }else{
, N$ y7 R4 f; _! ~, @ System.out.println("假"+bool);
* u2 |; a$ X7 c3 {* L5 c5 X }2 F. C' O7 Q7 y+ H/ q% v A$ N
if(!bool!=false&&"字符串" instanceof String){2 z- C4 E* B; |! o
System.out.println("真"+bool);
! w, [. T2 k& c5 @+ Y }else{# T' y8 M% L9 R5 j& Q
System.out.println("假"+bool);* j' E. \ B9 s" m
}
2 l% ^; Z) N5 F- Y2 c+ ~ }$ ~+ c; H' `+ H1 `8 q8 H5 c
$ @& ]8 s5 G7 j q" z6 k( n* u
& w- }* `/ x) |/ l5 n运行的结果是:: q) ?: ]' f* I Z
真true
. m+ p; s& p" B P- w0 C4 T" _* }1 r假true
3 j; ~4 Q* O# T; {8 e y" Q; U
5 M+ l, B8 L; E4 a6 f( p3 z这时有点疑惑,就像提问者所说的没有赋值为true啊
4 e- O% T7 v: v6 E# V8 O同时站长也把程序写了一下,运行了一下,结果的确如此,疑惑了?
$ u, x* G/ U1 q& I% \然后想通过debug方式看看问题出在哪一步,结果更是诧异:
( t* m/ c0 Y, _/ Z [ g真false' G% C+ _$ S$ s& x b& c, Z
真false
9 c' a# d9 g$ Y2 y* I
: a5 q/ x b% w% c: C/ y) e7 K8 r, d( y: n) F
彻底晕了,谁来解释下问题在哪里?, \9 D) c" E! A! y+ h+ j$ X% ^$ v2 ~- @
3 X) a& S8 y1 \% j6 ^6 l: h4 x
2 \7 Q! J K$ y. g" u0 a! j r8 \% V% V# E
1 Z4 B- a, ^$ @9 R |
|