|
今天在java自学网群中有人提出了一个关于java程序的运行结果的疑惑,大家快过来帮忙解答下:
7 U' \& ?# E; qpublic static void main(String[] args) throws UnsupportedEncodingException {, t$ _% j! M. M9 i- G* {. }8 t4 G6 C
boolean bool=false;
0 H" X, ]1 E. [6 B9 {+ X/ L' ^ if(bool=false||bool==false){
2 P8 `6 r# {6 q System.out.println("真"+bool);: Q _( G7 e- `8 o1 @) K" z
}else{) q! _3 S8 E7 a( J) q
System.out.println("假"+bool);# x1 t1 B8 l: S$ N7 O1 A# F
}2 O0 A O2 J$ v; s1 I
if(!bool!=false&&"字符串" instanceof String){$ g7 k1 d1 k2 {; a0 p; P
System.out.println("真"+bool);
" s3 h, s# B5 z }else{+ ^0 E/ g5 J/ _ h
System.out.println("假"+bool);- H. ~3 Z" e. v6 M
}3 {4 _( L: H* H7 Y/ g/ \7 Y
}
$ d' D3 ?7 d4 y+ ^7 D7 B$ c, A- R5 r7 o4 H3 ?0 S3 R
" G. n/ _/ ~+ y* c9 {! s
运行的结果是:
: S9 |2 [! A" A0 _& u& Q1 \' ?# i真true
+ ^ w$ ^* ^; T假true
9 Z. g# x' r4 G; d Y" r7 Y- e* v# A, E1 k1 J
这时有点疑惑,就像提问者所说的没有赋值为true啊: ?3 o, J' W R% i$ m2 C
同时站长也把程序写了一下,运行了一下,结果的确如此,疑惑了?6 G, K4 L+ c" z; N" i. n3 U; R. q
然后想通过debug方式看看问题出在哪一步,结果更是诧异:3 F# M. h1 c+ i! Y- A% L
真false9 J: H0 @' a! ~9 q# g
真false/ j7 M( P6 B4 S+ e8 C
1 s& t2 r2 L3 r& l- F, }) s- N
+ I: M8 g. \) m0 ?
彻底晕了,谁来解释下问题在哪里? @: { z- w/ l
5 v/ p, F1 u# K9 G0 E
) c n! y: l; U
+ ]/ f% I& a K$ i4 }/ P; M j
- g' \' \0 u! n9 t1 e |
|