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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 帅飞 中级黑马   /  2014-5-2 19:28  /  1606 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 帅飞 于 2014-5-4 02:50 编辑

//先定义两个int变量a=3,和b,然后让b=a++,输出a和b,结果为4和3

class Mo
{
        public static void main(String[] args)
                {

                int a=3,b;
                b=a++;
                System.out.println(a);
                System.out.println(b);

                }
}

————————————————————————————————————————————
//先定义int变量a=3,b,c,然后运算b=a++,c=++a,输出a,b和c,结果为 5,3,5


class Mo
{
        public static void main(String[] args)
                {

                int a=3,b,c;
                b=a++;
                c=++a;
                System.out.println(a);
                System.out.println(b);
                System.out.println(c);

                }
}
————————————————————————————————————————————
//先定义int变量a=3,b,c,然后运算c=++a,b=a++,输出a,b和c,结果为 5,4,4

class Mo
{
        public static void main(String[] args)
                {

                int a=3,b,c;
                c=++a;
                b=a++;
               
                System.out.println(a);
                System.out.println(b);
                System.out.println(c);

                }
}


——————————————————————————————————————————————


不知道这个结果是为什么?请大神指教。。。
自己已经弄懂了,,想彻底搞懂自运算? 看看这个帖子中我的回复吧!【http://bbs.itheima.com/thread-116532-1-1.html






点评

认真看毕老师视频第3.4天的视频.里面有讲解  发表于 2014-5-2 21:34

9 个回复

倒序浏览
  1. class Mo
  2. {
  3.         public static void main(String[] args)
  4.                 {

  5.                 int a=3,b,c;
  6.                 b=a++;   这里执行一次, b = 3;a = 4;
  7.                 c=++a; 到这就是 a 先自增 a = 5,再赋值给c ,c = 5;
  8.                 System.out.println(a);
  9.                 System.out.println(b);
  10.                 System.out.println(c);

  11.                 }
  12. }
复制代码
回复 使用道具 举报

应该是逐行运算,有累加效果,,相当于a进行两次自增运算,,,
回复 使用道具 举报
class Mo
{
        public static void main(String[] args)
                {

                int a=3,b,c;
                b=a++;                 //把a赋值给b,b=3,a自加一,a=4;
                c=++a;                 //++a先自加一再赋值所以a为5,c为5
                System.out.println(a);
                System.out.println(b);
                System.out.println(c);

                }
}a++是先处理其他运算,然后a再自加; 而++a则是先处理a自加运算,再处理其他表达式运算; 如果只是单纯的表达式a++;或者是++a;这两个表达式的结果就没什么区别。

评分

参与人数 1技术分 +1 收起 理由
SyouRai_Tsk + 1

查看全部评分

回复 使用道具 举报 1 0
刘晶 发表于 2014-5-2 19:40
class Mo
{
        public static void main(String[] args)

刚刚搞懂,,谢谢哈
:)
回复 使用道具 举报
刘晶 发表于 2014-5-2 19:40
class Mo
{
        public static void main(String[] args)

总之,相当于a进行了两次自增运算,是吗?
回复 使用道具 举报
可以这样说
回复 使用道具 举报
是第二天的视频里的,,我看完之后自己运算的结果,,,有点小疑惑,,,当然了,,问题在于,,a=3,b=a++,c=++a,a在第一次自加运算(b=a++)后,存储为4,然后又进行了一次(c=++a)变成了5、、、现在懂了,谢谢哈。
回复 使用道具 举报
class Mo
{
        public static void main(String[] args)
                {

                int a=3,b,c;
                c=++a;//a自增为4;赋值给c
                b=a++;//4赋值给b,再自增为5
               
                System.out.println(a);//5
                System.out.println(b);//4
                System.out.println(c);//4

                }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马