在java 中赋值运算符和++的优先级?那个优先。、、、、
答案:3 悬赏:40 手机版
解决时间 2021-03-10 23:22
- 提问者网友:抽煙菂渘情少年
- 2021-03-09 22:48
在java 中赋值运算符和++的优先级?那个优先。、、、、
最佳答案
- 五星知识达人网友:山有枢
- 2021-03-10 00:21
运算符优先级表
优先级 运算符 结合性
1 () [] . 从左到右
2 ! +(正) -(负) ~ ++ -- 从右向左
3 * / % 从左向右
4 +(加) -(减) 从左向右
5 << >> >>> 从左向右
6 < <= > >= instanceof 从左向右
7 == != 从左向右
8 &(按位与) 从左向右
9 ^ 从左向右
10 | 从左向右
11 && 从左向右
12 || 从左向右
13 ?: 从右向左
14 = += -= *= /= %= &= |= ^= ~= <<= >>= >>>= 从右向左
从表中可以看出++的优先级比较高
但提醒楼主注意下面的情况
public class Test2 {
public static void main(String[] args) {
int a = 5;
int b = 10;
a = ++b;
System.out.println("a = " + a);
System.out.println("b = " + b);
}
}
输出结果:
a = 11
b = 11
代码中的 a = ++b
要先执行++b,再执行赋值,即相当执行下面两步
(1)b ++ (++b和b++是一样的 ,b执行++后就会加1,从10变为11)
(1)a = b; (这里a就拥有了和b一样的值,所以a也等于11)
另一种情况:
public class Test2 {
public static void main(String[] args) {
int a = 5;
int b = 10;
a = b++;
System.out.println("a = " + a);
System.out.println("b = " + b);
}
}
输出结果:
a = 10
b = 11
代码中的a = b++也是分两步执行的。但和上面那种情况刚好相反
(1)先执行 a = b 所以a就拥有了b的值。即 a = 10
(2) 再执行 b ++ 这里b++后,b就从10加1变成了11
所以楼主在遇到有++运行符和赋值运算在一起可以可以看++的位置,在前面的先执行++再执行赋值。++在后面的先执行赋值,再执行++
就这么多了,希望能对楼主有所帮助。
优先级 运算符 结合性
1 () [] . 从左到右
2 ! +(正) -(负) ~ ++ -- 从右向左
3 * / % 从左向右
4 +(加) -(减) 从左向右
5 << >> >>> 从左向右
6 < <= > >= instanceof 从左向右
7 == != 从左向右
8 &(按位与) 从左向右
9 ^ 从左向右
10 | 从左向右
11 && 从左向右
12 || 从左向右
13 ?: 从右向左
14 = += -= *= /= %= &= |= ^= ~= <<= >>= >>>= 从右向左
从表中可以看出++的优先级比较高
但提醒楼主注意下面的情况
public class Test2 {
public static void main(String[] args) {
int a = 5;
int b = 10;
a = ++b;
System.out.println("a = " + a);
System.out.println("b = " + b);
}
}
输出结果:
a = 11
b = 11
代码中的 a = ++b
要先执行++b,再执行赋值,即相当执行下面两步
(1)b ++ (++b和b++是一样的 ,b执行++后就会加1,从10变为11)
(1)a = b; (这里a就拥有了和b一样的值,所以a也等于11)
另一种情况:
public class Test2 {
public static void main(String[] args) {
int a = 5;
int b = 10;
a = b++;
System.out.println("a = " + a);
System.out.println("b = " + b);
}
}
输出结果:
a = 10
b = 11
代码中的a = b++也是分两步执行的。但和上面那种情况刚好相反
(1)先执行 a = b 所以a就拥有了b的值。即 a = 10
(2) 再执行 b ++ 这里b++后,b就从10加1变成了11
所以楼主在遇到有++运行符和赋值运算在一起可以可以看++的位置,在前面的先执行++再执行赋值。++在后面的先执行赋值,再执行++
就这么多了,希望能对楼主有所帮助。
全部回答
- 1楼网友:风格不统一
- 2021-03-10 02:03
运算符优先级(精简总结看不懂请轻喷)
1()、[]、+、-
2算数运算符 *、/、%、+、-
3位移运算符 <<、>>、>>> 用于二进制的数字运算
4比较运算符 >、>=、<、<=、==、!=
5逻辑运算符 &、^、|、&&、||
6三元运算符 ? :
7赋值运算符 =、+=、-=、*=、/=、%=
8位赋值运算 &=、|=、<<=、>>=、>>>=
小括号,中括号,正负号,非,乘除,取余,非优先于优先于连接符.
自增自减在变量前面优先于算数运算符,次于连接符号
1()、[]、+、-
2算数运算符 *、/、%、+、-
3位移运算符 <<、>>、>>> 用于二进制的数字运算
4比较运算符 >、>=、<、<=、==、!=
5逻辑运算符 &、^、|、&&、||
6三元运算符 ? :
7赋值运算符 =、+=、-=、*=、/=、%=
8位赋值运算 &=、|=、<<=、>>=、>>>=
小括号,中括号,正负号,非,乘除,取余,非优先于优先于连接符.
自增自减在变量前面优先于算数运算符,次于连接符号
- 2楼网友:蕴藏春秋
- 2021-03-10 01:56
当然是++比较高了 ++是单目运算符>多目运算符> 赋值运算符
按优先级从高到低排列如下:[ ] ( ) ++ -- ! ~ instanceof * / % + - << >> >>> <> < = > \ == != &^& & || ? := op= 。
按优先级从高到低排列如下:[ ] ( ) ++ -- ! ~ instanceof * / % + - << >> >>> <> < = > \ == != &^& & || ? := op= 。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯