自動增遞和遞減
和c類似,java提供了大量的快捷運算。
這些快捷運算使編碼更方便,同時也使得代碼更容易閱讀,但是有時可能使代碼閱讀起來更困難。
遞增和遞減運算是兩種相當不錯的快捷運算(常稱爲“自動遞增”和“自動遞減”運算)。其中,遞減操作符是”—”,意爲“減少一個單位”;遞增操作符是“++”,意爲“增加一個單位”。舉個例子來說,假設a是一個int(整數)值,則表達式++a就等價於(a=a+1)。遞增和遞減操作符不僅改變變量,並且以變量的值作爲生成的結果。
這兩個操作符各有兩種使用方式,通常稱爲“前綴式”和“後綴式”。“前綴遞增”表示“++”操作符位於變量或表達式的前面;“後綴遞增”表示“++”操作符位於變量或表達式的後面。類似的,“前綴遞減”和”後綴遞減“。對於前綴遞增和前綴遞減(如++a或—a),會先執行運算,再生成值。而對於後綴遞增和後綴遞減(如a++或a—),會先生成值。再執行運算,下面是一個例子
//:operators/AutoInc.java
//Demonstrates the ++ and — operators
import static net.mindview.util.Print.*;
public class AutoInc{
public static void main(String[] args){
int i=1;
print(“i :”+i);
print(“++i :” + ++i);//Pre-increment
print(“i++:”+ i++);//Post-increment
print(“i :”+i);
print(“—i :”+ —i);//Pre-decrement
print(“i— :”+ i—);//Post-decrement
print(“i :”+i);
}
}/*Output
i:1
++i:2
i++:2
i:3
—i:2
i—:2
i:1
*///:~
從中可以看到,對於前綴形式,我們在執行完運算後纔得到值。
但對於後綴形式,則是在運算執行之前就得到值。
它們是除那些設計賦值的操作符以外,唯一具有”副作用“的操作符。
也就是說,它們會改變操作數,而不僅僅是使用自己的值。
遞增操作符正式對C++這個名字的一種解釋,暗示”超越C一步“。
在早期的一次關於Java的演講中,Bill Joy Java創始人之一 聲稱”Java=C++—“意味着Java已去除了C++中一些很困難而又沒必要的東西,成爲了一種更精簡的語言。