1. 程式人生 > 實用技巧 >11.Java賦值運算子

11.Java賦值運算子

賦值運算子

= , +=, -=, *=, /=, %=

運算子

運算

範例

結果

=

賦值

a=3,b=2

a=3,b=2

+=

加等於

a=3,b=3;a+=b;

a=5,b=2;

-=

減等於

a=3,b=2,a-=b;

a=1,b=2;

*=

乘等於

a=3,b=2,a*=b;

a=6,b=2

/=

除等於

a=3,b=2,a/=b;

a=1,b=2;

%=

模等於

a=3,b=2,a%=b;

a=1,b=2

a+=b 可以想象成 a=a+b;

變數宣告完了之後,可以使用賦值語句(assignment statement)給變數賦一個值,Java中使用等號(=)作為基本的賦值運算子(assignment operator),

格式如下:

variable = expression;

變數 = 表示式;

變數我們已經知道如何宣告,表示式具體如何定義?

表示式的定義:

表示式涉及到值(常量),變數和通過運算子計算出的值,以及他們組合在一起計算出的新值。

x =y+1;

public static void main(String[] args) {
        int x = 1; // 宣告int變數x, 賦值1給變數x
        int y = 0; // 宣告int變數y, 賦值0給變數y
        double area; // 宣告double變數area
        double radius = 1.0; // 宣告double變數radius,並賦值1.0給變數radius
        x = 5 * (3 / 2) + 3 * 2; // 將=右半部分表示式的計算結果賦值給變數x
        x = y + 1; // 將變數y和1的求和的值賦值給變數x
        area = radius * radius * 3.14159; // 將計算面積的值賦值給變數area
    }

賦值運算子小問題

問題1:

int x;
System.out.println(x = 1);
如何理解?
答:等價於
x=1;
System.out.println(x);

注意:不能 1=x,變數名必須在賦值運算子的左邊。
問題二:
     int x;
        int y;
        int z;
        x = y = z = 100; 
如何理解?
答:等價於
     int x;
        int y;
        int z;
        z = 100;
        y = z;
        x = y;
問題三:
  short s1 = 1;  s1= s1+1;  s1+=1; 問:s1= s1+1; s1+=1; 與有什麼不同? 對於short s1 = 1; s1 = s1 + 1; 由於s1+1運算時會自動提升表示式的型別,所以結果是int型,再賦值給short型別s1時,編譯器將報告需要強制轉換型別的錯誤。 對於short s1 = 1; s1 += 1;由於 += 是java語言規定的運算子,java編譯器會對它進行特殊處理,因此可以正確編譯。