为什么不加()一样的结果呀

来源:3-4 Java中的比较运算符

慕虎5580445

2020-03-02 16:04

http://img4.mukewang.com/5e5cbdd50001e6d504300048.jpg为什么不加str1==str2旁边的括号也可以运算呢

写回答 关注

2回答

  • 慕瓜3396416
    2020-03-21 21:58:03

    因为在运算符优先级表中+的运算级大于==,那意味着什么呢?就是说在你题中的运算顺序是先把+两边的字符连接,在用连接起来的整体与str2相比较(就是指判断这个整体与str2是否相同:如果不相同输出false;如果相同,输出true),即:

    先做      "str1等于str2"+str1     ,运行结果是这样的:   str1等于str2hello

    然后做    str1等于str2hello==str2     ,最终结果是这样的:    false

    而我加了括号的运算顺序是怎样呢?先计算==两边的表达式(就是指先判断str1与str2是否相同:如果不相同输出false;如果相同,输出true),然后在将 str1等于str2与前一步的运算结构相加,即:

    先做      "str1==str2"         ,运行结果是这样的:       false

    然后做    str1等于str2+false    ,最终结果是这样的:   str1等于str2false

    总而言之:加括号与不加括号都可以运算,但是由于运算顺序不同,运算结果也不同!希望题主能够深刻理解。


  • 酌酒悲歌
    2020-03-02 17:15:50

    不应该的啊,你如果执行的话应该只会显示false,前面的字符串是 没有的啊

Java入门第一季(IDEA工具)升级版

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

1165523 学习 · 17586 问题

查看课程

相似问题