前面兩篇文章我們將算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、位運(yùn)算符、邏輯運(yùn)算符這些Java運(yùn)算符介紹完了,在這篇文章中將為大家介紹賦值運(yùn)算符以及其他運(yùn)算符。它們在使用過程中如何做呢?又有哪些特色呢?一起來看看。
賦值運(yùn)算符
下面是Java語言支持的賦值運(yùn)算符:
實(shí)例
面的簡單示例程序演示了賦值運(yùn)算符。復(fù)制并粘貼下面的Java程序并保存為Test.
java文件,然后編譯并運(yùn)行這個(gè)程序:
public class Test {
public static void main(String args[]) {
int a = 10;
int b = 20;
int c = 0;
c = a + b;
System.out.println("c = a + b = " + c );
c += a ;
System.out.println("c += a = " + c );
c -= a ;
System.out.println("c -= a = " + c );
c *= a ;
System.out.println("c *= a = " + c );
a = 10;
c = 15;
c /= a ;
System.out.println("c /= a = " + c );
a = 10;
c = 15;
c %= a ;
System.out.println("c %= a = " + c );
c <<= 2 ;
System.out.println("c <<= 2 = " + c );
c >>= 2 ;
System.out.println("c >>= 2 = " + c );
c >>= 2 ;
System.out.println("c >>= a = " + c );
c &= a ;
System.out.println("c &= 2 = " + c );
c ^= a ;
System.out.println("c ^= a = " + c );
c |= a ;
System.out.println("c |= a = " + c );
}
}
以上實(shí)例編譯運(yùn)行結(jié)果如下:
c = a + b = 30
c += a = 40
c -= a = 30
c *= a = 300
c /= a = 1
c %= a = 5
c <<= 2 = 20
c >>= 2 = 5
c >>= 2 = 1
c &= a = 0
c ^= a = 10
c |= a = 10
條件運(yùn)算符(?:)
條件運(yùn)算符也被稱為三元運(yùn)算符。該運(yùn)算符有3個(gè)操作數(shù),并且需要判斷布爾表達(dá)式的值。該運(yùn)算符的主要是決定哪個(gè)值應(yīng)該賦值給變量。
variable x = (expression) ? value if true : value if false
實(shí)例
public class Test {
public static void main(String args[]){
int a , b;
a = 10;
b = (a == 1) ? 20: 30;
System.out.println( "Value of b is : " + b );
b = (a == 10) ? 20: 30;
System.out.println( "Value of b is : " + b );
}
}
以上實(shí)例編譯運(yùn)行結(jié)果如下:
Value of b is : 30
Value of b is : 20
instanceOf 運(yùn)算符
該運(yùn)算符用于操作對象實(shí)例,檢查該對象是否是一個(gè)特定類型(類類型或接口類型)。
instanceof運(yùn)算符使用格式如下:
( Object reference variable ) instanceOf (class/interface type)
如果運(yùn)算符左側(cè)變量所指的對象,是操作符右側(cè)類或接口(class/interface)的一個(gè)對象,那么結(jié)果為真。
下面是一個(gè)例子:
String name = 'James';
boolean result = name instanceOf String; // 由于name是Strine類型,所以返回真
如果被比較的對象兼容于右側(cè)類型,該運(yùn)算符仍然返回true。
看下面的例子:
class Vehicle {}
public class Car extends Vehicle {
public static void main(String args[]){
Vehicle a = new Car();
boolean result = a instanceof Car;
System.out.println( result);
}
}
以上實(shí)例編譯運(yùn)行結(jié)果如下:
True
Java運(yùn)算符優(yōu)先級
當(dāng)多個(gè)運(yùn)算符出現(xiàn)在一個(gè)表達(dá)式中,誰先誰后呢?這就涉及到運(yùn)算符的優(yōu)先級別的問題。在一個(gè)多運(yùn)算符的表達(dá)式中,運(yùn)算符優(yōu)先級不同會導(dǎo)致最后得出的結(jié)果差別甚大。
例如,(1+3)+(3+2)*2,這個(gè)表達(dá)式如果按加號最優(yōu)先計(jì)算,答案就是 18,如果按照乘號最優(yōu)先,答案則是 14。
再如,x = 7 + 3 * 2;這里x得到13,而不是20,因?yàn)槌朔ㄟ\(yùn)算符比加法運(yùn)算符有較高的優(yōu)先級,所以先計(jì)算3 * 2得到6,然后再加7。
下表中具有最高優(yōu)先級的運(yùn)算符在的表的最上面,最低優(yōu)先級的在表的底部。