|
今天在java自学网群中有人提出了一个关于java程序的运行结果的疑惑,大家快过来帮忙解答下:( U) g& |; Y0 d8 U
public static void main(String[] args) throws UnsupportedEncodingException {
+ _, w N5 M. b8 } boolean bool=false;
$ F2 q1 M& Z6 c# M3 E3 A7 _ if(bool=false||bool==false){
- N; W5 p5 W7 m- } System.out.println("真"+bool);
+ e! C7 L) A/ `: z( _9 P% q" }! ~ }else{
6 V6 X+ [2 D2 W$ B% U System.out.println("假"+bool);
+ I% S# u7 r( I! { }
! r, j" W' |/ [' p: h if(!bool!=false&&"字符串" instanceof String){$ c% z) f* x5 Z- f; W) ]* D6 Z
System.out.println("真"+bool);
6 W. c; c' v. l" m+ \8 ?/ O }else{
$ {4 J9 P3 a! ~9 A& C3 a3 l! m System.out.println("假"+bool);
5 [* d6 O- u, B; ^) l( J }; S& o! s. B% e7 w2 `2 P
}
* t) B4 D% U, q6 F6 R6 {: C7 D
/ Y! K8 Q' Z7 c: K
" h7 R" B" A; a9 M7 r% O3 `- l. I运行的结果是:
. l, J; n9 v2 p4 ?真true
/ l$ r! f- j8 [3 y假true
4 w( Q" _/ \' i+ f" S. J4 f& O
! ^5 l( _5 B8 o. u6 H这时有点疑惑,就像提问者所说的没有赋值为true啊6 O3 ^0 x8 y) R6 t
同时站长也把程序写了一下,运行了一下,结果的确如此,疑惑了?" l1 M4 S9 `# A2 L6 u2 S5 P$ o |% ^
然后想通过debug方式看看问题出在哪一步,结果更是诧异:
( S5 _! c% h6 Q6 P! M/ K. c" e真false6 c; _$ t; u! b8 |9 j3 s
真false
" x6 C4 E. o! H& N% q8 D: B+ P. r3 }+ M5 u
1 [/ O% W1 ]; r; y9 a$ _- E彻底晕了,谁来解释下问题在哪里?0 u1 ~2 \# s+ k
- o0 d6 L; k X3 g9 _- m& U, Z# Y* c7 V( f9 Q/ D
3 k$ k+ g! r. Z4 O
$ H& e, l# |: @: O7 H
|
|