11.Java賦值運算子
阿新 • • 發佈:2020-08-27
賦值運算子
= , +=, -=, *=, /=, %=
運算子 |
運算 |
範例 |
結果 |
= |
賦值 |
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編譯器會對它進行特殊處理,因此可以正確編譯。