A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

bankmycard

中级黑马

  • 黑马币:8

  • 帖子:117

  • 精华:0

© bankmycard 中级黑马   /  2015-3-24 21:23  /  740 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

问大婶们一个问题
int a=2;
int b=a++;
请问打印结果的话a=多少?,b=多少,谢谢!

9 个回复

倒序浏览
b=2 a=3 ++在后面后运算
回复 使用道具 举报
a = 3, b=2, 后++的话 b会先取到a的值后 a再自增。
回复 使用道具 举报
a=3,b=2;a++是先运算后赋值,++a,是先赋值后运算,概念别混淆了
回复 使用道具 举报
a=3,b=2
a++是后自增,先对b进行赋值后再进行自增运算
回复 使用道具 举报
a=3,b,2,后自增
回复 使用道具 举报
a没有变。然后  只是把a再++等于3赋给了b。a还是a
回复 使用道具 举报
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. 它们的运算结果的类型与被运算的变量的类型相同。
回复 使用道具 举报
打印结果是a=3  b=2
回复 使用道具 举报
决绝回答,因为你问的是大婶们:我可是纯爷们儿,呵呵,看个玩笑,这个问题你应该不难解决吧!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马