Java运算优先顺序问题

发布网友 发布时间:2022-04-23 06:11

我来回答

3个回答

热心网友 时间:2023-10-18 13:35

x+=x+(x=1)

等同于

x = x + x + (x = 1)

先不说优先顺序,计算机在计算时候都是从左往右计算的,每次计算前都会检查运算符的优先级

当从左开始时候

3 + 3 = 6

然后继续 ,碰见 + ( x = 1 ) 小括号,优先计算小括号里的,小括号里是赋值,结果为1,继续

6 + 1 = 7

所以最后 x= 7


===================================================


这样理解吧:


String str="a";
Object result = 1 + 1 + ( 1 + str );
System.out.println( result );

这个result结果是“21a”,这个就能说明它是从左往右扫描,逐步计算的

热心网友 时间:2023-10-18 13:35

肯定是括号优先啊 先算(x=1) 在算x+(x=1);最后算x+=x+(x=1) 不要以为x=1就改变的x在内存地址的值 其实内存地址的值还是3

热心网友 时间:2023-10-18 13:36

我的理解是 在表达式里面声明变量的赋值对于编译器的解释来说只是一个值的引用,就好像一个副本元素一样。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com