慕虎5580445
2020-03-02 16:04
为什么不加str1==str2旁边的括号也可以运算呢
因为在运算符优先级表中+的运算级大于==,那意味着什么呢?就是说在你题中的运算顺序是先把+两边的字符连接,在用连接起来的整体与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
总而言之:加括号与不加括号都可以运算,但是由于运算顺序不同,运算结果也不同!希望题主能够深刻理解。
不应该的啊,你如果执行的话应该只会显示false,前面的字符串是 没有的啊
Java入门第一季(IDEA工具)升级版
1165523 学习 · 17586 问题
相似问题