java中的自增和自減運算子
阿新 • • 發佈:2019-02-13
引子
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