JAVA 自增自减运算符问题

发布时间:2024-05-12 12:53 发布:上海旅游网

问题描述:

package lianxi;

public class Lianxi11 {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int a=5;
int b=++a;
int c=--b+a;

System.out.println(c);

}

}
结果输出结果为11
如果 int c=a+(++b);
那么c的结果为13
麻烦告诉我下是程序是怎么运算
我自己算的结果不一样

问题解答:

首先,必须先弄清++(自增)和--(自减)运算符的基本用法先:

++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

热点新闻