java自学网VIP

Java自学网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4123|回复: 2

很怪异的java程序题 好多人都不知道为什么

[复制链接]
  • TA的每日心情
    开心
    2021-5-25 00:00
  • 签到天数: 1917 天

    [LV.Master]出神入化

    2025

    主题

    3683

    帖子

    6万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    66345

    宣传达人突出贡献优秀版主荣誉管理论坛元老

    发表于 2015-4-22 21:40:16 | 显示全部楼层 |阅读模式
    今天在java自学网群中有人提出了一个关于java程序的运行结果的疑惑,大家快过来帮忙解答下:( ^. E5 z8 x3 v7 m, r; Q! O
    public static void main(String[] args) throws UnsupportedEncodingException {  w0 c/ X" F! X  s7 c8 T
                    boolean bool=false;
    : ^1 D4 d+ P7 m4 d; V$ G                if(bool=false||bool==false){
    5 I5 @" u* f" A. s4 P                        System.out.println("真"+bool);  i. H- y) T. z( y' R. Y
                    }else{; Z% M$ |  Y" z+ C
                            System.out.println("假"+bool);
    - \3 U. j6 H$ l9 D6 R5 `+ r                }, r  i! i  B/ }! @! }
                    if(!bool!=false&&"字符串" instanceof String){
    ' k' U) B4 I2 o4 y6 \+ c                        System.out.println("真"+bool);
    . Z1 h6 l& |  O  a: P  a  o- l                }else{. ~% z/ l8 S  i  z+ S* ]
                            System.out.println("假"+bool);
    ' a+ F8 H8 N% s1 A! ], P% `5 D( @                }9 r8 h4 b& J3 Z
            }
    5 r* F4 m( G7 r7 ~( z1 d$ K0 ^
    ( C2 b5 K. A  K5 `
    * c' @! v/ B. ^1 K1 z) b% J4 k运行的结果是:1 B: k+ ^! P' B' u) s
    真true
    ) H6 ?/ d2 W2 A8 ~假true/ W# u  L/ a0 I7 x1 @* F& [8 j
    $ e3 j9 B0 P" j2 E* p
    这时有点疑惑,就像提问者所说的没有赋值为true啊# B4 W9 x5 e* G# Y
    同时站长也把程序写了一下,运行了一下,结果的确如此,疑惑了?
    $ b7 m" D. D6 ~: G" g* V然后想通过debug方式看看问题出在哪一步,结果更是诧异:
    ; [, [1 e5 I" X9 `# a  N+ u真false
    * x; \1 j1 h& \; @! J( m真false
    + X8 f' O. `8 j( J+ V: ]9 [, D( k2 s9 ?1 L

    ' ]; P+ |/ N: g. V5 M彻底晕了,谁来解释下问题在哪里?' D6 t) E: U3 d: q

    : j1 v* T5 u8 y5 h9 s: `+ p6 c+ }3 l! T9 g! V; R
    2 I. G0 m# P6 x3 l
    ( R+ @  Y$ F) w$ x  F1 A# M
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2021-5-25 00:00
  • 签到天数: 1917 天

    [LV.Master]出神入化

    2025

    主题

    3683

    帖子

    6万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    66345

    宣传达人突出贡献优秀版主荣誉管理论坛元老

     楼主| 发表于 2015-4-23 09:51:15 | 显示全部楼层
    这个问题的结果是没问题的,主要考虑到了运算符的优先级!
    $ V6 u! [  P& b. |+ {: @# B自己看下优先级,就什么都明白了1 v6 u* B8 {: P. q7 K1 _- H; X
    4 A4 x3 F6 b, s* v/ [7 P, d$ {
    ; M& ?  O. B; l- _. W8 a+ F
    6 _1 I: S* x$ {2 \7 @1 k; W" {
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    81

    帖子

    176

    积分

    普通会员

    Rank: 2

    积分
    176
    发表于 2022-7-8 13:47:03 | 显示全部楼层
    感谢楼主  
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|Java自学网

    GMT+8, 2024-11-21 17:58 , Processed in 0.239371 second(s), 31 queries .

    Powered by Javazx

    Copyright © 2012-2022, Javazx Cloud.

    快速回复 返回顶部 返回列表