设x=1.y=2.z=3.求表达式y+=z--/++x的值是多少?
我猜3
++或--在前先进行自增或自减运算再进行使用
++或--在前先进行使用再进行自增或自减运算
y+=z--/++x 等同于
y=y+z--/++x 等同于
y=y+z/(x+1) 带入值
y=2+3/(1+1) 如果定义的x y z都是int类型则 y = 2 + 1 = 3;
// 设x=1.y=2.z=3.求表达式y+=z--/++x的值是多少?
int x = 1;
int y = 2;
int z = 3;
// y+=z--/++x; 等价于 y = y+(z--/++x);
// z-- = 3-1 = 2;
// ++x = 1+1 = 2;
// (z--/++x) = (2/2) = 1
// y = 2 + (2/2) = 2 + 1 = 3
// y+=z--/++x的值是3
x=1.y=2.z=3
这个就是考运算符的顺序,
y+=z--/++x 的计算顺序是 1) ++x, 2) z/++x 3) y+=z/++x 4) z--;
所以,若x,y,z都为int类型的话,则有:
z不会-1 因为z--先运算后-1 z=3
x会+1 因为 ++x先+1 后运算 x=2
z/x 是取整 值为1
y+=z--/++x 就是y=y+z--/++x
所以y+1=3
z--看成整体,结果为3
++x看成整体,结果为2
z--/++x的结果为1
那么最后的结果为y=y+1=3
++在前先加后运算,++在后先运算后加
--在前先减后运算,--在后先运算后减
package com;
public class Main {
public static void main(String[] args) {
int x = 1, y = 2, z = 3;
y += z-- / ++x;
System.out.println("x=" + x);
System.out.println("y=" + y);
System.out.println("z=" + z);
}
}