CodeGym /課程 /JAVA 25 SELF /整數:int 型別與其運算

整數:int 型別與其運算

JAVA 25 SELF
等級 2, 課堂 1
開放

1. 更深入了解型別 int

如果你想在變數中儲存整數,就需要使用 int 型別。

int 是 Integer(英語中意為整數)的縮寫,這也暗示此型別用來儲存整數。

int 型別的變數可以儲存從 -20 億 到 +20 億 的整數。更精確地說,範圍是從 -2,147,483,648 到 2,147,483,647。

有趣的事實

這些看起來不太整的數值,與電腦記憶體的結構有關。

在 Java 中,型別 int 佔用 4 位元組記憶體。每個位元組由 8 個位元組成。每個位元只能有 2 個值 —— 0 或 1。int 變數包含 32 個位元,因此可表示 4,294,967,296 個不同的值。

這個範圍的一半分配給負數,另一半給正數,所以結果正好是從 -2,147,483,648 到 2,147,483,647。

2. 建立型別 int 的變數

int 型別用於儲存整數。若要在程式碼中建立能夠儲存整數的變數,可以使用以下語法:

int imya;
宣告一個 int 變數

其中 imya 是變數名稱。範例:

程式碼 說明
int x;
建立整數變數 x
int count;
建立整數變數 count
int currentYear;
建立整數變數 currentYear

大小寫有區別:int color 與 int Color 會宣告兩個不同的變數。

而 Int Color 與 INT COLOR 這樣的寫法,編譯器完全無法理解,並會報錯。int 是表示整數型別的保留字,且只能以小寫撰寫。

3. 宣告多個變數的簡寫

如果在同一處需要建立多個相同型別的變數,可以使用簡寫:

int imya1, imya2, imya3;
同型別多個變數的簡寫宣告

範例:

程式碼 等價的簡寫
int x;
int y;
int z;
int x, y, z;
int count;
int totalCount;
int count, totalCount;
int day;
int month;
int year;
int day, month, year;

4. 指派(賦值)

要把值放入 int 型別的變數,使用以下語句:

imya = znachenie;
對變數賦值

其中值可以是任何整數運算式。範例:

程式碼 說明
int a;
a = 5;
int b;
b = 2*1000*1000*1000;
變數中的值將是「20 億」
int c;
c = -10000000;
變數中的值將是「負一千萬」
int d;
d = 3000000000;
無法編譯,因為 3,000,000,000 大於 int 型別的最大可表示值 2,147,483,647

5. 宣告並同時初始化的簡寫

可以把變數的建立(宣告)與對其賦值寫成同一條語句。多數情況下都這麼做,因為通常是在需要保存某個值時才會宣告變數。

語法如下:

int imya = znachenie;
宣告並初始化變數的簡寫

範例:

程式碼 說明
int a = 5;
int b = 2*1000*1000*1000;
變數中的值將是「20 億」
int c = -10000000;
變數中的值將是「負一千萬」
int d = 3000000000;
無法編譯,因為 3,000,000,000 大於 int 型別的最大可表示值:2,147,483,647

也可以在同一行宣告多個變數,語法如下:

int imya1 = znachenie1, imya2 = znachenie2, imya3 = znachenie3;
多個變數的宣告與初始化簡寫

範例:

程式碼 說明
int a = 5, b = 10, c = a + b;
a 等於 5,b 等於 10,c 等於 15

6. 整數運算式的計算

在賦值運算子(等號)右側可以是任何運算式 —— 由數字、變數與符號 +、-、*、/ 組成。

也可以使用括號 ( )。在 Java 中與數學相同,會先計算括號內的運算式,再計算外層。乘法與除法有相同的優先順序,且高於加法與減法。

範例:

程式碼 說明
int a = (2 + 2) * 2;
變數中的值將是 8
int b = (6 - 3) / (9 - 6);
變數中的值將是 1
int c = (-2) * (-3);
變數中的值將是 6
int d = 3 / 0;
執行此語句時會發生錯誤,程式將會終止。

運算式中也可以使用變數:

int a = 1;			// 變數 a 將會是 1
int b = 2;			// 變數 b 將會是 2
int c = a * b + 2;	// 變數 c 將會是 4

此外,同一個變數可以同時出現在賦值運算子的左邊與右邊:

int x = 5;		// 變數 x 將會是 5
x = x + 1;		// 變數 x 將會是 6
x = x + 1;		// 變數 x 將會是 7
x = x + 1;		// 變數 x 將會是 8
x = x + 1;		// 變數 x 將會是 9
x = x + 1;		// 變數 x 將會是 10

重點在於,Java 中的符號 = 並不是數學上的相等號,而是一個指令:它會把等號右邊運算式計算出的值存入等號左邊的變數。

7. 整數除法

在 Java 中,用整數除以整數,結果一律是整數。此時餘數會被捨去,也可以說小數部分被丟棄。

範例:

程式碼 除法結果 說明
int a = 5 / 2;
2.5 變數 a 將會是 2
int b = 20 / 3;
6.6667 變數 b 將會是 6
int c = -6 / 5;
-1.2 變數 c 將會是 -1
int d = 1 / 2;
0.5 變數 d 將會是 0

8. 整數的餘數運算

除了加法、減法、乘法與除法之外,Java 對整數還提供「取餘數」運算子。使用百分號 % 表示。這得到的是整數除法的餘數,而不是小數部分。

範例:

程式碼 除法結果 說明
int a = 5 % 2;
2,餘 1 變數 a 將會是 1
int b = 20 % 4;
5,餘 0 變數 b 將會是 0
int c = 9 % 5;
1,餘 4 變數 c 將會是 4
int d = 1 % 2;
0,餘 1 變數 d 將會是 1

這個運算子非常實用,也經常使用。例如要判斷一個數是否為偶數,只要除以 2,再把餘數與 0 比較即可。若餘數為 0,則是偶數;若為 1,則是奇數。

檢查方式如下:

(a % 2) == 0

如你所料,a % 2 是取除以 2 的餘數(也就是 0 或 1),而 == 用於與 0 比較。

9. 遞增與遞減

在程式設計中,經常需要將變數加一或減一。對此,Java 提供了專用的運算子:

遞增(加一)運算子的寫法如下:

a++;
加一

這與指令 a = a + 1; 的效果相同 —— 讓變數 a 加一。

遞減(減一)運算子的寫法如下:

a--;
減一

這與指令 a = a - 1; 的效果相同 —— 讓變數 a 減一。

範例 1

int x = 5;		// 變數 x 將會是 5
x++;			// 變數 x 將會是 6
x++;			// 變數 x 將會是 7
x++;			// 變數 x 將會是 8
x++;			// 變數 x 將會是 9
x++;			// 變數 x 將會是 10

範例 2

int x = 5;		// 變數 x 將會是 5
x--;			// 變數 x 將會是 4
x--;			// 變數 x 將會是 3
x--;			// 變數 x 將會是 2
x--;			// 變數 x 將會是 1
x--;			// 變數 x 將會是 0
x--;			// 變數 x 將會是 -1
1
任務
JAVA 25 SELF, 等級 2, 課堂 1
上鎖
主角年齡 🦸‍♂️
主角年齡 🦸‍♂️
1
任務
JAVA 25 SELF, 等級 2, 課堂 1
上鎖
擲骰子遊戲結果 🎲
擲骰子遊戲結果 🎲
1
任務
JAVA 25 SELF, 等級 2, 課堂 1
上鎖
隊伍間的獎品分配 🎁
隊伍間的獎品分配 🎁
1
任務
JAVA 25 SELF, 等級 2, 課堂 1
上鎖
遊戲中生命值的變化 📈
遊戲中生命值的變化 📈
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION