++與--問題

    首先咱們要明白,java中進行計算時,++在前先進行++計算,在賦值。++在後先賦值 在進行++操做java

  

package com.aria.basic;

/**
 * ++ 與 -- 的測試
 * @author aria
 *
 */
public class OperatorTest {

    public static void main(String[] args) {
        int a = 10;
        int b = ++a ;
        int c =(a++)+(--b);
        int d =(--a)+(b++)-(++c);
        int e =(a++)-(++b)+(c--)-(--d);
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        System.out.println(d);
        System.out.println(e);

    }

}

 個人計算過程:c++

  

/**
 * ++ 與 -- 的測試
 * @author aria
 *
 */
public class OperatorTest {

    public static void main(String[] args) {
        int a = 10; //a = 10;
        int b = ++a ; // a = 11 , b = 11
        System.out.println(a);//11
        System.out.println(b);//11
        int c =(a++) + (--b);//a=11 b=10 c = 21
        System.out.println(a);//12
        System.out.println(b);//10
        System.out.println(c);//21
        int d =(--a) + (b++) - (++c);//a=11 b=10 c=22 
        System.out.println(a);//11
        System.out.println(b);//11
        System.out.println(c);//22
        System.out.println(d);//-1
        int e =(a++)-(++b)+(c--)-(--d);//a=11 b=12 c=22 d=-2
        System.out.println(a);//12
        System.out.println(b);//12
        System.out.println(c);//21
        System.out.println(d);//-2
        System.out.println(e);//23

    }

}

  分析:測試

    int a = 10;此時 a = 10;spa

    int b = ++a;因爲++再前,先執行++操做再賦值  即a = a+1 ;a  = 11,b = a ,b = 11。code

    因此此處打印a,b的值都爲11blog

    int c = (a++)+(--b); 此是++在後因此先參與加法運算再執行a的自增,--再前對於b先進行--操做因此b=10 對於c實際運算的數字爲 11 + 10class

因此c的值爲21 ,而後a進行++操做,因此a=12變量

    因此此處打印的a,b,c結果分別爲12,10,21im

    int d = (--a)+(b++)-(++c);對於變量a--在前先執行自減操做 a = 11 對於b++在後後進行自增參與運算的爲b的當前值,對於c++在前,先執行++操做因此c =22 。對於d的運算爲 11+10 - 22 因此d = -1 而後b執行++操做 b的值爲11新手

    因此此處打印abcd的值爲 11,11,22,-1

    int e =(a++)-(++b)+(c--)-(--d);對於變量a參與運算的值爲11 對於變量b參與運算的值爲12 對於變量c參與運算的值爲22 對於d參與運算的值爲-2 因此e = 11-12+22-(-2) = 23

  對於a 在進行++因此a-=12 b=12 c進行--操做 c=21 d=-2

  因此最終打印結果爲:

    做爲新手若是遇到這種運算符特別多和複雜的能夠慢慢的進行拆解,一步一步慢慢進行分析。

相關文章
相關標籤/搜索