黑马程序员技术交流社区

标题: 各位大神,有事求教? [打印本页]

作者: bankmycard    时间: 2015-3-24 21:23
标题: 各位大神,有事求教?
问大婶们一个问题
int a=2;
int b=a++;
请问打印结果的话a=多少?,b=多少,谢谢!

作者: 九个太阳学程序    时间: 2015-3-24 21:26
b=2 a=3 ++在后面后运算
作者: 18234133910    时间: 2015-3-24 21:26
a = 3, b=2, 后++的话 b会先取到a的值后 a再自增。
作者: 卢乾荣    时间: 2015-3-24 22:01
a=3,b=2;a++是先运算后赋值,++a,是先赋值后运算,概念别混淆了
作者: l540144279    时间: 2015-3-24 22:19
a=3,b=2
a++是后自增,先对b进行赋值后再进行自增运算
作者: ws748264    时间: 2015-3-25 12:18
a=3,b,2,后自增
作者: jiangwenjun    时间: 2015-3-25 13:07
a没有变。然后  只是把a再++等于3赋给了b。a还是a
作者: 奋斗的黑马    时间: 2015-3-25 20:25
a=3,b=2;



自增(++)和自减(--)运算符
在JAVA语言中存在着很多运算符,但是在实际开发中我们或许很少用到它们,在初次学习中却时常出现它们的身影,对于这些运算符的含义和用法,是否还记得呢?下面让我们来看看下面几段Java代码:
int i = 0;
int j = i++;
int k = --i;
这段代码运行后,i等于多少?j等于多少?k等于多少?相信对于这段代码应该没有问题,因为很简单。结果为:i=0,j=0,k=0。那下面这段呢?
int i = 0;
int j = i++ + ++i;
int k = --i + i--;
代码执行后i、j、k分别等于多少呢?答案为i=0,j=2,k=2。不知道对这个结果有没有疑问呢?起初我第一眼扫过去的结果和真正的执行结果是不同的,也就是我判断错了。也许会问,怎么这么简单的问题都弄错呢?是的,有时稍微不注意真会出错。这看的就是我们对Java运算符优先级的认识。来,继续看下面这段代码:
int i=0;
System.out.println(i++);
这段代码运行后输出结果是什么?0?1?答案当然是i=0。这个是毋庸置疑的。接着看下面这段代码:
float f=0.1F;
f++;
double d=0.1D;
d++;
char c='a';
c++;
上面这段代码可以编译通过并执行吗?答案是肯定的。如果此时对上面说的都没有问题,那么就可以说明对自增自减运算符已经掌握的很好了。现在就让我们还回顾一下相关知识:
自增(++):将变量的值加1,分前缀式(如++i)和后缀式(如i++)。前缀式是先加1再使用;后缀式是先使用再加1。
自减(--):将变量的值减1,分前缀式(如--i)和后缀式(如i--)。前缀式是先减1再使用;后缀式是先使用再减1。
自增与自减运算符还遵循以下规律:
   1. 可以用于整数类型byte、short、int、long,浮点类型float、double,以及字符串类型char。
   2. 在Java5.0及以上版本中,它们可以用于基本类型对应的包装器类Byte、Short、Integer、Long、Float、Double、Character。
   3. 它们的运算结果的类型与被运算的变量的类型相同。
作者: 福娃51zx    时间: 2015-3-25 20:35
打印结果是a=3  b=2
作者: wkz_crystal    时间: 2015-3-25 20:51
决绝回答,因为你问的是大婶们:我可是纯爷们儿,呵呵,看个玩笑,这个问题你应该不难解决吧!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2