我在使用前缀和后缀运算符对数字执行减法时遇到一个小问题。
这是我的程序:
public class postfixprefix
{
public static void main (String args[])
{
int a = 5;
int b;
b = (a++) - (++a);
System.out.println("B = " +b);
}
}
这样做,理论上我应该得到 0 作为答案,但是,我得到的是 -2。
当我尝试单独尝试增加值时,如下程序所示:
public class postfixprefix
{
public static void main (String args[])
{
int a = 5;
int b, c;
b = a++;
c = ++a;
System.out.println("B = " +b);
System.out.println("C = " +c);
}
}
我得到的值为 B = 5,C = 7。
所以我认为“c”从“b”中获取“a”的值(如果我错了,请纠正我),但我想知道的是
- 我怎样才能不从“b”中获取“a”的值,并且
- 使用前缀 - 后缀,当它们相减时我可以得到 0 作为答案吗?
如果您一步步执行此操作,您会看到会发生什么:
b = (a++) - (++a); //a is now 5
b = 5 - (++a); //read a, then increment it. a is now 6
b = 5 - 7; //increment a, then read it. a is now 7
b = -2
如果你以另一种方式做,你会得到:
b = (++a) - (a++); //a is now 5
b = 6 - (a++); //increment a, then read it. a is now 6
b = 6 - 6; //read a, then increment it. a is now 7
b = 0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)