1. 程式人生 > >java中的自增和自減運算子

java中的自增和自減運算子

 引子

 Java中有自增(++)和自減(--)兩種運算子,這兩種運算子幫助我們在編寫程式的時候簡化了程式碼,提高了速度,方便快捷。自增和自減運算子可以放在變數的前面和變數的後面,如 ++a, a++,放在變數前面和後面的執行結果大相徑庭,如果不做深入瞭解,在使用的過程中可能會出現問題。

示例分析

  自增和自減運算子號放在變數的前面,如 ++a, 表示先執行運算,再生成值, 放在變數的後面,如: a++,先生成值,再執行運算。下面我們看看具體的用法。

  int i=1;
  System.out.println("之前 i:"+i);//之前
  System.out.println("++i :"+ ++i);
 System.out.println("之後 i:"+i);//之後

上面我們定義了一個變數i, 執行++i的時候,是先執行運算,再生成值,所有執行++i的時候的值是2

  System.out.println("i++用法");
        System.out.println("之前  i:"+i);//之前
        System.out.println("i++ :"+ i++);
        System.out.println("之後  i:"+i);//之後

    上面的程式碼中我們執行i++的時候,先生成值,再執行計算,所以i++ 輸出還是執行計算之前的值

全部程式碼

 public static void main( String[] args )
    {

        int i=1;

        System.out.println("++i用法");
        // ++i之前和之後的值
        System.out.println("之前 i:"+i);//之前
        System.out.println("++i :"+ ++i);
        System.out.println("之後 i:"+i);//之後

        System.out.println("---------------------");

        System.out.println("i++用法");
        System.out.println("之前  i:"+i);//之前
        System.out.println("i++ :"+ i++);
        System.out.println("之後  i:"+i);//之後

        System.out.println("---------------------");


        System.out.println("--i用法");
        // ++i之前和之後的值
        System.out.println("之前 i:"+i);//之前
        System.out.println("--i :"+ --i);
        System.out.println("之後 i:"+i);//之後

        System.out.println("---------------------");

        System.out.println("i--用法");
        System.out.println("之前  i:"+i);//之前
        System.out.println("i-- :"+ i--);
        System.out.println("之後  i:"+i);//之後

        System.out.println("---------------------");


    }

執行結果

++i用法
之前 i:1
++i :2
之後 i:2
---------------------
i++用法
之前  i:2
i++ :2
之後  i:3
---------------------
--i用法
之前 i:3
--i :2
之後 i:2
---------------------
i--用法
之前  i:2
i-- :2
之後  i:1
---------------------

for迴圈

for迴圈中經常會用到自增和自減運算子,先看下for迴圈的執行順序和流程

for(init;bool;step) {   statement } init:表示初始化值 bool:表示判斷條件

step:表示運算步驟,就是常用的自增和自減運算子
statement:表示執行的內容
先說下for語句中的執行順序, init只執行一次,在第一次執行for的時候進行初始化
bool:每次執行前都要進行判斷,如果條件不滿足,就結束for迴圈執行, 嚴格的說,step執行完後,才執行bool判斷 step:是遞增變數,每次執行完  statement後,才會再執行step; 也就是說statement優先於step執行,這是重點, 看下面的程式碼我們就明白了for的原理和自增的原理
 for(int j=0;j<5;System.out.println("執行變數前"+j),j++,System.out.println("執行變數後"+j))
        {
            System.out.println(j);
        }


0
執行變數前0
執行變數後1
1
執行變數前1
執行變數後2
2
執行變數前2
執行變數後3
3
執行變數前3
執行變數後4
4
執行變數前4
執行變數後5