|
今天在java自学网群中有人提出了一个关于java程序的运行结果的疑惑,大家快过来帮忙解答下:% R% a4 X' N9 F
public static void main(String[] args) throws UnsupportedEncodingException {
1 Z. d5 r- d# ]5 g" u3 q* s boolean bool=false;
+ s/ ~4 a3 k" I9 S if(bool=false||bool==false){0 c' k4 [: J5 ?" V$ X( |% d
System.out.println("真"+bool);
6 W! r/ A x6 i; N' |) k- T* }" J }else{1 k0 D! d4 {. T9 z9 R* T
System.out.println("假"+bool);
6 w# F" y8 a) |3 m% c' {/ U. c! x }- [. O" @. j% X3 Z- z% I* I
if(!bool!=false&&"字符串" instanceof String){
& r( J2 g& }8 s. p System.out.println("真"+bool);4 Z. N5 S. c. b4 ]* o8 M
}else{
& K1 [7 v; y% _) F System.out.println("假"+bool);
! }) l9 r# O7 y9 d m( A8 E. i }* f% A8 ~# J1 h$ \7 W
}
2 T. y: U+ Q/ r# ^
! A3 g, d3 z& f; A: ]7 j2 z6 k/ s3 W$ M7 }3 k
运行的结果是:
6 n& o# N$ Q/ ~% R真true! [( I- A) e2 m) n
假true5 z; e6 {! d8 x
' R2 W" K( s- t8 B. W! t这时有点疑惑,就像提问者所说的没有赋值为true啊
b" o: M+ J8 p3 p, ^同时站长也把程序写了一下,运行了一下,结果的确如此,疑惑了?( B) B, a% \8 |6 U
然后想通过debug方式看看问题出在哪一步,结果更是诧异:
0 o# f4 p6 w' }/ {( W& x+ T1 c" F- P真false
7 \: b) ^. M1 [( r真false1 `( }) o' ]: A7 {2 Z
2 V4 s. \+ r1 `1 e
; ~+ o9 I" a: ]% I" @: p彻底晕了,谁来解释下问题在哪里?
{6 }' l4 b! |' }5 c4 @) O) Z, k4 m( m& F/ @
; Y' y6 ?0 g! i) C
3 ^ B6 |: |3 P- n% }0 L( z. K4 F
! w4 l1 p n& s+ ]) A |
|