|
今天在java自学网群中有人提出了一个关于java程序的运行结果的疑惑,大家快过来帮忙解答下:" x/ r L: y% X9 @8 H ^$ {; V
public static void main(String[] args) throws UnsupportedEncodingException {
7 e( C5 T& _% T- w; c boolean bool=false;2 a3 F( u. j0 ?: A/ a- k' d4 O* ~% M
if(bool=false||bool==false){& \ i9 \. y# ]/ S3 {9 i3 L+ w
System.out.println("真"+bool);4 F: e3 m- s4 f
}else{
' B0 k+ R; n. G4 o O3 U% [ System.out.println("假"+bool);
$ E! T$ V5 [/ j) W }
+ C+ Z0 h5 k+ W l, J2 a9 V if(!bool!=false&&"字符串" instanceof String){
! @3 P" G3 U% A8 c, K) c) S) A System.out.println("真"+bool);: Y. [- u/ |4 K
}else{
5 b$ g: [/ L7 ^% D System.out.println("假"+bool);5 E. j! E7 b/ m
}
" e; V h' Q7 v' ]2 _; O8 D }0 h2 @7 r" {! |
- V. g3 I" b, F7 h: {9 j# W
. L* f; S l9 c" Q运行的结果是:- p0 U# I2 N8 `. H
真true
2 q. E6 E- S, o% ?' n. ~. l. c. A假true
" R) O& g4 s: J9 P- |1 i- d5 Z! w4 M7 z, [" Q) e* k
这时有点疑惑,就像提问者所说的没有赋值为true啊
1 Z' }* I/ v4 ?同时站长也把程序写了一下,运行了一下,结果的确如此,疑惑了?# q8 O: @% b& p6 m: p; h( Z
然后想通过debug方式看看问题出在哪一步,结果更是诧异:
% t$ O7 w+ Y- t2 ]1 r真false& S7 J( V( C" P: x" E: A
真false
7 ~: A) Q& X! X) @8 p. n! r4 m. P1 E. ?
" V: k* k* R; ^6 S* B, i0 l彻底晕了,谁来解释下问题在哪里?
+ I2 w% Q5 \5 q" `
5 `3 [ G! I% {; C" F2 U$ k5 |) C& z( e% h* r
% k! Z' _) }4 L
+ k$ }) n9 a* ?. c) R |
|