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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 7℃洋 中级黑马   /  2012-11-12 21:47  /  2618 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 吴愿涛 于 2012-11-14 01:37 编辑

class Print{
     public static void main(String[] args){
         int a = 5 ;         
        System.out.println(a++);
        System.out.println(++a);
        System.out.println(a--);
        System.out.println(--a);
   }
}

点评

这种运算符的执行原理 ,只要打好基础很容易理解的 。  发表于 2012-11-14 01:40

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

12 个回复

倒序浏览
本帖最后由 罗宝 于 2012-11-12 21:59 编辑

                int a = 5 ;         
                System.out.println(a++);     //先执行语句,再计算,打印结果是 5
                System.out.println(++a);     //先计算,后执行语句,打印结果是 7
                System.out.println(a--);       //打印结果是 7
                System.out.println(--a);       //打印结果是 5

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 赞一个!

查看全部评分

回复 使用道具 举报
class Print{
      public static void main(String[] args){
          int a = 5 ;         
        System.out.println(a++); //a++是后加,先输出,后加1(a的值变成6),所以打印结果是5。
        System.out.println(++a); //++a是先加,然后输出,所以打印结果是7。
        System.out.println(a--); //--a是后减,也是先输出,然后减1(a的值变为6),所以打印结果是7。
        System.out.println(--a);//--a是先减,所以a先减1,在输出,所以打印结果是5。
    }
}

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 很给力!

查看全部评分

回复 使用道具 举报
class Print{
      public static void main(String[] args){
          int a = 5 ;         
        System.out.println(a++); //a++是先加。只不过加完的值没有赋给a而是存在一个临时内存中.临时空间的值是a = 6 ,所以结果是5
        System.out.println(++a); //++a是先加。加完的值直接赋值给a。所以是7
        System.out.println(a--); //同上,a--是先减,减完后没有赋值。而是存在临时内存空间内。临时内存空间的值是 a = 6打印结果是7
        System.out.println(--a);//--a是先减,减完后直接赋值给a
    }
}

a++,a--。++a,--a哪个都一样并不是先加或先减的问题。而是先赋值和后赋值的问题。我是这么理解的

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 很给力!

查看全部评分

回复 使用道具 举报
class Print{
       public static void main(String[] args){
           int a = 5 ;         
        System.out.println(a++); //a++ 是先输出a的值,然后再对a进行加1运算,再把a+1后的值赋给变量a。
         System.out.println(++a); //++a 是先进行a+1运算,把a+1的值在赋给变量a,再对a进行输出。
         System.out.println(a--); //--a 是先输出a的值,然后再对a进行减1运算,再把a-1后的值赋给变量a。
         System.out.println(--a);//--a 是先进行a-1运算,把a-1的值在赋给变量a,再对a进行输出。
     }
}

a++,a--。++a,--a,,我对这几个加加减减的理解无非就是两种情况,一个是先取后加,一个是先加后取;

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 赞一个!

查看全部评分

回复 使用道具 举报
a++,++a单独作用不影响结果,只有和其他对象一起连用才有实际意义,比如:int a=1 if(a++>1){a--}和int a=1 if(++a>1){a--}结果就不一样
回复 使用道具 举报
一个是先赋值再运算,一个是先运算再赋值。
回复 使用道具 举报
何伟 中级黑马 2012-11-28 17:29:06
8#
放在前面就是先自增或者自减在进行运算,放在后面是先运算完在进行自增自减运算
回复 使用道具 举报
一个先被调用在自增(减)操作  一个先减(增)操作在被语句调用   记忆很简单  变量和操作符谁在先就先执行谁
回复 使用道具 举报
一句话:1) a++是先赋值再运算,即先打印再运算
2)++a,是先运算再赋值,即先运算再打印。
对于你的题目,在打印a++后加上打印语句sop(a);是不是等于6
在a--加上打印语句sop(a);是不是也等于6
回复 使用道具 举报
彭璞 中级黑马 2012-11-28 18:28:47
11#
自增(++):将变量的值加1,分前缀式(如++i)和后缀式(如i++)
前缀式是先加1再使用;后缀式是先使用再加1。
自减(--):将变量的值减1,分前缀式(如--i)和后缀式(如i--)
前缀式是先减1再使用;后缀式是先使用再减1。

自增与自减运算符还遵循以下规律:
可以用于整数类型byte、short、int、long,浮点类型float、double,以及字符串类型char。
在Java5.0及以上版本中,它们可以用于基本类型对应的包装器类Byte、Short、Integer、Long、Float、Double、Character。
它们的运算结果的类型与被运算的变量的类型相同。
回复 使用道具 举报
                int a = 5 ;         
                 System.out.println(a++);     //先执行,再计算,      分享理解小技巧:因为先看到了"a”,是变量就执行,打印结果是5,语句结束之后a的值是6
                 System.out.println(++a);     //先计算,后执行,      分享理解小技巧:因为先看到了"+",是运算符,那就计算吧,a的值是7,打印结果是7
                 System.out.println(a--);       //先执行,再计算,      分享理解小技巧:因为先看到了"a”,是变量就执行,打印结果是7,语句结束之后a的值是6
                 System.out.println(--a);       //先计算,后执行,      分享理解小技巧:因为先看到了"+",是运算符,那就计算吧,a的值是5,打印结果是5
回复 使用道具 举报
增1减1操作符

    1> 增1减1操作符包括

       ++(前增1,如++i)

       --(前减1,如--i)

       ++(后增1,如i++)

       --(后减1,如i--)

      

       这些操作符作用于变量

    2> 前增1,前减1操作符

       表达式的值就是变量所获得的新值

       例如:

              m = ++k;

       就相当于

              k += 1;

              m=k;



       先增1(减1),后取值

    3> 后增1,后减1操作符

       表达式的值就是变量原来的旧值

       例如:

              m = k--;

       就相当于

              m=k;

              k - = 1;



       先取值,后增1(减1)

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