JAVA 自增自减运算符问题 Java自增自减运算符计算题

作者&投稿:定窦 (若有异议请与网页底部的电邮联系)
首先,必须先弄清++(自增)和--(自减)运算符的基本用法先:

++a:即先自加1之后再进行运算,程序中int b=++a;其中a的值为5,先自加1,也就是a为6,然后再赋值给b,那么b的值为6

a++:即先进行运算之后再自加1,如果程序中int b=a++;那么b的值为5.

再来看程序就不难得出答案了:
1 int a=5; //a等于5
int b=++a; //b等于6
int c=--b+a; //先算--b,b为6,先自减1,那么b为5,再加上a=6,所以结果C=11

2 int a=5; //同上
int b=++a; //同上
int c=a+(++b); //先算++b,b为6先自加1,那么b为7,再加上a=6,所以结果c=13

整个过程就是这样了。

你要明白 ++a, --b的优先级要高于+,-,=运算
所以
int a=5;
int b=++a;//++a先执行,a+1=6,再进行=赋值运算,所以b=6, a=6
int c=--b+a;//先执行--b,(--b)+a=5+6=11,赋值给c,c=11
int c=a+(++b);//先执行(++b),再执行a+(++b)=6+7=13
关键是搞清楚各个运算符的优先级~~

int a=5;
int b=++a; // ++在前 先运算再赋值 现在 a=b=6;
int c=--b+a; //--优先级比+高,先计算-- c此时b=5再加上a 5+6=11;再赋值

int c=a+(++b); //同理 括号优先级最高 先计算++b 此时b=7 6+7=13;再赋值

javaQQ群:76397268 期待和您共同提高

int a=5; ------a=5
int b=++a; ------a=a+1=6 b=a=6
int c=--b+a; ------b=b-1=5 c=b+a=11

第三句如果是int c=a+(++b); b=b+1=7 c=a+b=13

y=++X先计算的是++X,然后才给y赋值,也就是先5+1然后赋给y=6。y=X++先考虑y的赋值,之后才进行++预算。

java自增自减运算符疑问~

首先,你的输出有时用System.out,有时用System.err,这会导致输出结果顺序不固定,你多运行几次就会发现结果有一定机率会是变化的。所以要先全改成System.out.println,然后再来解析程序运行过程。
正确结果是:
10-1a初始值为0,执行a++后,a变为1,因此第一个输出是1;
执行a--后,a变为0,因此第二个输出是0;
执行--a后,a变为-1,因此第三个输出是-1;

应该是3,++这种自增是会马上自增的,z--是下一个语句减的。