为什么不加()一样的结果呀
为什么不加str1==str2旁边的括号也可以运算呢
为什么不加str1==str2旁边的括号也可以运算呢
2020-03-02
因为在运算符优先级表中+的运算级大于==,那意味着什么呢?就是说在你题中的运算顺序是先把+两边的字符连接,在用连接起来的整体与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
总而言之:加括号与不加括号都可以运算,但是由于运算顺序不同,运算结果也不同!希望题主能够深刻理解。
举报