为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

正在回答

2 回答

因为在运算符优先级表中+的运算级大于==,那意味着什么呢?就是说在你题中的运算顺序是先把+两边的字符连接,在用连接起来的整体与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

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


3 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信