指定運算子以等號 " = " 表示之。為將" = "符號右方之值設定給左方之欄位(變數)。
class Assign1 {
public
static void main (String[] args) {
int num1,
lit1, asn1, sum1;
num1 = 20;
lit1= '張';
System.out.println("數字 = "+num1);
System.out.println("文字 = "+lit1);
asn1 = lit1;
System.out.println("指定運算後之值 = "+asn1);
sum1 = num1 + lit1;
System.out.println("加法運算後之值 = "+sum1);
}
}
執行結果:C:\js>java Assign1
數字 = 20
文字 = 24373
指定運算後之值 = 24373
加法運算後之值 = 24393
基本型別的指定運算,儲存的是實際數值(賦值)。物件的指定運算,儲存的是參考位址(賦址)。須注意下例兩者之不同,即指定運算後,更改一個物件之值,亦會影響另一物件。
class Objvr{
int r = 10;
}
class Assignvr{
public
static void main(String[] args){
//賦值運算(圖7-1)
int a = 100;
int b = 200;
System.out.print("賦值1(指定運算複製前):");
System.out.print("a = " + a);
System.out.println(" b = "
+ b);
a = b; //指定運算(賦值)
System.out.print("賦值2(指定運算複製後):");
System.out.print("a = " + a);
System.out.println(" b = " + b);
a = 300; //變更其一之值
System.out.print("賦值3(變更其一之值後):");
System.out.print("a = " + a);
System.out.println(" b = "
+ b);
//賦址運算(圖7-2)
Objvr x = new Objvr();
Objvr y = new Objvr();
x.r = 400;
y.r = 500;
System.out.print("賦址1(指定運算複製前):");
System.out.print("x.r = " + x.r);
System.out.println(" y.r = "
+ y.r);
x = y; //指定運算(賦址),x.r = 500,y.r = 500
System.out.print("賦址2(指定運算複製後):");
System.out.print("x.r
= " + x.r);
System.out.println(" y.r = "
+ y.r);
x.r = 600; //只更改x.r之值,但位址相同,y.r亦同值
System.out.print("賦址3(變更其一之值後):");
System.out.print("x.r = " + x.r);
System.out.println(" y.r = "
+ y.r);
}
}
執行結果:C:\js>java Assignvr
賦值1(指定運算複製前):a = 100 b =
200
賦值2(指定運算複製後):a = 200 b =
200
賦值3(變更其一之值後):a = 300 b =
200
賦址1(指定運算複製前):x.r = 400
y.r = 500
賦址2(指定運算複製後):x.r = 500
y.r = 500
賦址3(變更其一之值後):x.r = 600
y.r = 600
算術運算子:加法( + )、減法( - )、乘法( * )、除法( / )、求餘數( % )
class Arith1 {
public
static void main (String[] args) {
int num1
= 50;
int num2 = 2;
int result1;
result1 = num1 + num2;
System.out.println("兩數相加 = "+ result1);
result1 = num1 - num2;
System.out.println("兩數相減 = "+ result1);
result1 = num1 * num2;
System.out.println("兩數相乘 = "+ result1);
result1 = num1 / num2;
System.out.println("兩數相除 = "+ result1);
result1 = num1 % num2;
System.out.println("餘數之值 = "+ result1);
}
}
執行結果:C:\js>java Arith1
兩數相加 = 52
兩數相減 = 48
兩數相乘 = 100
兩數相除 = 25
餘數之值 = 0
[複合等號]
等號兩邊為同一變數時,可省略等號右邊變數,並將右邊運算符號移至等號左邊,簡化如下:
a = a + b ; 可簡化為 a += b ;
a = a - b ; 可簡化為 a - = b ;
a = a * b ; 可簡化為 a *= b ;
a = a / b ; 可簡化為 a /= b ;
a = a % b ; 可簡化為 a %= b ;
class Comeq1 {
public
static void main (String[] args) {
int num1
= 50;
int num2
= 2;
num1 +=
num2;
System.out.println("兩數相加 = " +
num1);
num1 -=
num2;
System.out.println("兩數相減 = " +
num1);
num1 *=
num2;
System.out.println("兩數相乘 = " +
num1);
num1 /=
num2;
System.out.println("兩數相除 = " +
num1);
num1
+=1;
num1 %=
num2;
System.out.println("餘數之值 = " +
num1);
}
}
執行結果:C:\js>java Comeq1
兩數相加 = 52
兩數相減 = 50
兩數相乘 = 100
兩數相除 = 50
一元運算子包含證號(+)和負號(-),負號為取得運算元的負值,正號沒有影響。
class Unary1{
public
static void main (String[] args) {
int a = 10 ,
b = 20;
int x , y;
x = -a; //x的值為-10
System.out.println("x = " + x);
x = a *
-b; //同x = a * (-b);
y = +x; //正號沒有影響
System.out.println("y
= " + y);
}
}
執行結果:C:\js>java Unary1
x = -10
y = -200
class Incre1 {
public
static void main (String[] args) {
int num1,
num2, num3, num4;
num1 = 10;
System.out.println("前置遞增 num1 = "+ ++ num1);
num2 =
10;
System.out.println("後置遞增 num2 = "+ num2++);
System.out.println("後置遞增 num2 = "+ num2);
num3 =
10;
System.out.println("前置遞減 num3 = "+ -- num3);
num4 =
10;
System.out.println("後置遞減 num4 = "+ num4--);
System.out.println("後置遞減 num4 = "+ num4);
}
}
執行結果:C:\js>java Incre1
前置遞增 num1 = 11
後置遞增 num2 = 10
後置遞增 num2 = 11
前置遞減 num3 = 9
後置遞減 num4 = 10
後置遞減 num4 = 9
比較運算子:等於( = = )、不等於( ! = )、大於( > )、小於( < )、大於等於( > = )、
小於等於( < = )
比較運算子運算結果為true(真)或false(假)。
class Compare1 {
public
static void main (String[] args) {
int num1 =
3, num2 = 2;
System.out.println("測試 (num1 == num2) = " + (num1==num2));
System.out.println("測試 (num1 != num2) = " + (num1 != num2));
System.out.println("測試 (num1 > num2) = " + (num1 > num2));
System.out.println("測試 (num1 < num2) = " + (num1 < num2));
System.out.println("測試 (num1 >= num2) = " + (num1 >= num2));
System.out.println("測試 (num1 <= num2) = " + (num1 <= num2));
}
}
執行結果:C:\js>java Compare1
測試 (num1 == num2) = false
測試 (num1 != num2) = true
測試 (num1 > num2) = true
測試 (num1 < num2) = false
測試 (num1 >= num2) = true
測試 (num1 <= num2) = false
*參考型別(物件)之相等性測試將闢另章說明。

沒有留言:
張貼留言