java自增自减运算符疑问

代码:
int a = 0;
int b = a++;
System.err.println(a);
int c = a--;
System.err.println(a);
int d = --a;
System.out.println(a);

输出结果:
run:
1
-1
0
求解释下a的值的变化

首先,你的输出有时用System.out,有时用System.err,这会导致输出结果顺序不固定,你多运行几次就会发现结果有一定机率会是变化的。所以要先全改成System.out.println,然后再来解析程序运行过程。

正确结果是:

1
0
-1

a初始值为0,执行a++后,a变为1,因此第一个输出是1;

执行a--后,a变为0,因此第二个输出是0;

执行--a后,a变为-1,因此第三个输出是-1;

温馨提示:内容为网友见解,仅供参考
第1个回答  2017-08-10

你确定你输出的是这个?

JAVA 自增自减运算符问题
首先,必须先弄清++(自增)和--(自减)运算符的基本用法先:++a:即先自加1之后再进行运算,程序中int b=++a;其中a的值为5,先自加1,也就是a为6,然后再赋值给b,那么b的值为6 a++:即先进行运算之后再自加1,如果程序中int b=a++;那么b的值为5.再来看程序就不难得出答案了:1 ...

JAVA 里面的 自运算符 ++和--是什么意思
++为自增运算,--为自减运算。例如定义变量 a a++为先取a的值进行操作然后a自增1;++a为a先自增1然后把增加后的a的新值取出进行操作。自减运算相同

java的自增运算符和自减运算符是什么
自减(--):将变量的值减1,分前缀式(如--i)和后缀式(如i--)。前缀式是先减1再使用;后缀式是先使用再减1。自增与自减运算符还遵循以下规律:1. 可以用于整数类型byte、short、int、long,浮点类型float、double,以及字符串类型char。2. 在Java5.0及以上版本中,它们可以用于基本类型对...

JAVA里的‘++’ ‘--’怎么运算
++和--分别是自增自减运算符,作用就是给变量自动+1和-1的操作,它有两种用法,一种是++放在变量名的后面,比如:int i=0;System.out.println(i++);\/\/A 结果是0 System.out.println(i);\/\/B 结果是1 A这一行的意思就是在执行打印操作后,再给i加上1,所以A行的结果是0,B行的结果...

你也太捞了吧!Java的五种运算符 还不知道?盘它!
算术运算符主要包括以下符号:加(+)、减(-)、乘(*)、除(\/)、取余(%)、自增(++)、自减(--)。在Java中,使用int类型的变量和int类型的变量做除法,得到的结果也是int类型。若使用double类型的常量和 int类型的常量做除法,则会得到double类型的结果;通过强制类型转换,可使结果保持为double。对于...

学习Java 中 += 与 =+ 的区别
通过比较`+=`和`=`操作符,我们可以看出,它们在执行自增操作时的行为有着明显的区别。`+=`操作符在执行自增操作时会先保存`x`的原始值,然后执行加法操作,最后将结果赋给`x`,而`=`操作符则是直接将`y`的值赋给`x`,不涉及临时变量的保存。同样地,对于自减操作符,我们也可以进行类似的...

java如何写自增、自减的代码
x++,2*x之间的符号叫做逗号运算符 逗号运算符两侧的计算顺序取决于编译器 有的编译器先将x+1再乘以2得到6 而有的编译器先将x乘以2得到4 在将x+1 楼主可以这样写 2 * x++; \/\/这样结果为42 * ++x; \/\/结构为6不过自增或自减语句最好单独写一行 ++x;2 * x;...

什么是自增运算,什么是自减运算
1、自增(++)自减(--)运算符是一种特殊的算术运算符,在算术运算符中需要两个操作数来进行运算,而自增自减运算符是一个操作数。解释:一般常用的加减乘除运算符都是两个数进行运算,比如:两个数才能加法运算,但自增自减运算符是对单一操作数进行自身加一或自身减一的运算。2、前缀自增自减...

Java运算符?
1)算术运算符 +-*\/%++-- +:如果有加数为“”(字符串),表示连接 :2%1 0 ++:自增1 num++:先参与运算,然后在自增 ++num:先自增,再参与运算 --:自减1 num-- --num 2)赋值运算符 = += -= *= \/= %=...num=3;+= num+=3=>num=num+3 左边?=右边=>左边=左边?

java运算符有哪些。求解一定要全 还有中文标注,谢谢了。
一、算术运算符:单目:+(取正)-(取负) ++(自增1) - -(自减1)双目:+ - * \/ %(取余)三目:a>b?true:false 说明:当a大于b的时候,为true(也就是冒号之前的值),否则为false;这整个运算符包括一个关系运算符(可以是“>”"<""!="等等),一个“?”,一个“:”,...

相似回答