運算符的先後次序 (先乘除後加減的問題)
算符的優先次序決定了算符作用的表達式之間連接的有多緊。 比如說,在 1 + 5 * 3表達式中, 答案是 16 而不是 18, 這是因為 '*' 號比 '+' 號更優先執行。
下表列出了從低到高的優先次序。 最下面算符會最先被執行。
運算符優先次序 | 各類運算符 |
---|---|
左 | , |
左 | or |
左 | xor |
左 | and |
右 | |
左 | = += -= *= /= .= %= &= |= ^= ~= <<= >>= |
左 | ? : |
左 | || |
左 | && |
左 | | |
左 | ^ |
左 | & |
沒關聯 non-associative | == != === !== |
沒關聯 non-associative | < <= > >= |
左 | << >> |
左 | + - . |
左 | * / % |
右 | ! ~ ++ -- (int) (double) (string) (array) (object) @ |
右 | [ |
沒關聯 non-associative | new |