java中 +a+ , +a代表什么?还有 --a 和 a-- 的区别?请举实例

inta=3,b;b=++a;System.out.println("a="+a+",b="+b);为何数值会是a=4,b=4,呢?如果b=a++;那么数值a=4;b=3... int a = 3, b;
b= ++a;
System.out.println("a="+a+",b="+b);
为何数值会是a = 4,b = 4,呢?

如果b = a++; 那么数值a = 4;b = 3;呢?
究竟 --a 是否等于 a - 1 呢?又与a-- 一样吗?
什么时候 + 是连接符?什么时候 + 是加号?
展开
 我来答
knightzhuwei
推荐于2017-11-25 · TA获得超过1万个赞
知道大有可为答主
回答量:2440
采纳率:0%
帮助的人:1992万
展开全部
这个可以分为2部分
首先 关于+a+和+a
我们可以这样来理解 若int a=2,那么我们将a可以看做是形式的,2是实际的
同样 String s="a=" s是形式的,a=是实际的
在System.out.println()里,""中的都是实际的,即电脑会原分不动的打印出里面的内容 而+号是连结两个表达式的,""也算是表达式,形式的参数也是表达式。
拿你给出的例子做说明
int a=2,b;
b=a++; //这个你肯定明白的,是a自+
System.out.println("a="+a+",b="+b);
这里我们可以看到有四个表达式"a=" + a + "b=" + b
于是电脑会输出a=3,b=2
其中a=就是"a="
3就是a
,b=就是",b="
2就是b

然后 关于--a和a--
如果--在变量的前边,那么是先执行--运算在执行+ - 等运算,
int a = 2; a = --a;a的值是1
int a = 2; a = a--;a的值是2
追问
可以根据我的问题补充回答一下吗?谢谢
百度网友bd75426
2012-12-03 · TA获得超过212个赞
知道小有建树答主
回答量:232
采纳率:100%
帮助的人:52.5万
展开全部
a++和++a的区别就在于使用a的时候是先让它+1还是使用之后才+1.
b=++a;++a是先让a+1然后再赋值给b。b=a++;a++是把a当前的值赋值给b后a再+1。所以无论是a++还是++a,a都会是4
--a和a--同理。
+是连接符只出现在字符串。
System.out.println("a="+a+",b="+b);这句print里面一开始就是引号“”,所以整句话都会被当成字符串解释而+自然就是用来连接里面的内容了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
贝兰希戊
2019-07-06 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.2万
采纳率:25%
帮助的人:772万
展开全部
a++和++a的区别就在于使用a的时候是先让它+1还是使用之后才+1.
b=++a;++a是先让a+1然后再赋值给b。b=a++;a++是把a当前的值赋值给b后a再+1。所以无论是a++还是++a,a都会是4
--a和a--同理
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
静·葉飘零e17e8
2012-12-02 · TA获得超过167个赞
知道答主
回答量:41
采纳率:0%
帮助的人:35.5万
展开全部
问题应该是a++和++a吧。。。
例如:
int a=1,s=0;
s=a++;此时s=1,a=2;
a=1;s=0;
s=++a;此时s=2,a=2;

a--和--a都类似。如果是a++或a--,先取a直接进行赋值或其他运算,若++a或--a,就直接取(a+1)或(a-1)进行运算
来自:求助得到的回答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
丿丶东子
2012-12-02 · TA获得超过156个赞
知道答主
回答量:212
采纳率:100%
帮助的人:86万
展开全部
1.+a+ :前后的加号是连接符代表连接,举一例子写一输出语句,输出结果:变量a=1
eg:System.out.println("变量"+a+"=1");
2.+a :前边的加号也是连接符,eg:System.out.println("变量"+a); 输出结果:变量a
3.你知不知道++a与a++的区别,而--a与a--的区别是一样的,其含义都是a=a-1,区别在于使用和运算的先后顺序,例如,--a是先运算后使用,a--反之,举个例子eg:
public class First{
public static void main(String []args){
int a = 10;
int b = a-- + --a;//a-- + --a=10+8
System.out.println("变量b="+b);//输出结果是:变量b=18
}
}
b = ++a;含义是b=a+1=4,而这时的变量a=a+1=4,所以输出结果是a=4,b=4
如果b=a++;是先使用a的值赋给b,所以b=3,再在运算a=a++=a+1=4
所以输出结果是a=4,b=3
追问
public class First{
public static void main(String []args){
int a = 10;
int b = a-- + --a;//a-- + --a=10+8
System.out.println("变量b="+b);//输出结果是:变量b=18
}
}//这个例子,b = a-- + --a;//a-- 等于10-1 吗 --a等于10-1 吗 为何变了10 + 8 呢

如果b=a++;是先使用a的值赋给b,所以b=3,再在运算a=a++=a+1=4那就是b不参与运算吗
追答
b=a-- + --a;//等号后单看a--是等于10-1=9,整体是先使用赋值后运算就是b=10+...
而后这时变量a=9,运算到--a时先计算a=a-1=9-1=8,后使用赋值把8赋值给a,
这时的a=8;整体来看就是b=10+8;
如果还没懂,可以分别测试一下a值,eg:
public class First{
public static void main(String []args){
int a=10;
int b=--a;
System.out.println(a);//a这时等于9
System.out.println(b);//b=9
}
}
public class Second{
public static void main(String []args){
int a=10;
int b=a--;
System.out.println(a);//a这时还等于9
System.out.println(b);//而b=10,是因为a先是使用赋值给了b,而后在自身运算
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式