image-ru-00-14

一個粉色頭髮的女人走進了船艙。「不知道是不是所有的人類女性都有這樣的頭髮,」阿米哥忍不住想。

「嗨!我叫艾莉諾‧凱瑞。你可以叫我艾莉。我是銀河衝衝號的領航員。」

「嗨,艾莉,」阿米哥努力擠出回應。

「我接下來要解釋整個 Java 語言裡最有趣的部份:變量。」

「我準備好認真聽了。你說的變量是什麼啊?」

變量是用來儲存資料的特殊實體,任何資料都可以。在 Java 中,所有的資料都存在變量裡。要類比的話,它最接近盒子的概念。」

「盒子?怎樣的盒子啊?」

「就是隨便一個舊盒子。假設你把數字 13 寫在一張紙上,然後放到盒子裡。我們就可以說這個盒子裡儲存著 13 這個值。」

「在 Java 裡面,每個變量都有三個重要的屬性:型別 (type)名稱 (name)、還有值 (value)。」

「你可以再解釋清楚點嗎?」

「當然。我們會使用名稱,好區分不同的變量。就像是盒子上的標籤一樣。

變量的型別會決定哪種類型的值/資料可以存在裡面。就好像帽子就放在帽盒,鞋子就放在鞋盒,諸如此類。」

「值是儲存在變量裡的具體物件、資料或資訊。」

「關於型別,你可以多說一點嗎?」

「當然。Java 裡的每個物件都具有某種型別。例子包括整數、分數、文字、貓、房子、等等。

「一個變量也有型別。它只能拿來儲存跟自己同樣型別的值。」

「在現實生活中也能觀察到同樣的現象。不同種類的盒子會用來儲存不同的東西:」

「要建立(或宣告)一個變量,我們要使用型別的名稱:TypeName variableName。」

「下面是一些範例:」

要宣告一個變量:
先寫型別,然後寫名稱。
描述
1
int a;
建立一個名稱為 aint 變量。
2
String s;
建立一個名稱為 sString 變量。
3
double c;
建立一個名稱為 cdouble 變量。

「最常用的兩個型別是整數(用 int 關鍵字進行宣告)和文字(用 String 關鍵字進行宣告)。」

「那什麼是 double 呢?」

Double 是分數或實數。」

「你剛說變量有三個屬性:型別、名稱、還有值。但我只看到兩個。所以,我想問的是,要怎麼指定值給變量呢?」

「讓我們回到盒子的類比。想像你拿出一張紙、寫下數字 42、然後放到盒子裡。現在盒子儲存著 42 這個值。」

「我懂。」

「我們用一個特別的操作(指定)來指定變量的值。指定操作把值從一個變量複製到另一個變量。它並不移動值。只是複製。就像硬碟上的檔案一樣。下面就是指定操作代碼的樣子:」

代碼 描述
1
i = 3;
指定值 3 給變量 i
2
a = 1;
b = a+1;
指定值 1 給變量 a
指定值 2 給變量 b
3
x = 3;
x = x + 1;
指定值 3 給變量 x
在下一行,把 x 的值加 1,讓 x 等於 4

「為了完成指定操作,我們會使用等號 (=)。」

「讓我再次強調:這不是在進行比較操作。我們是把等號右邊的值複製到左邊的變量。要進行比較操作,Java 使用的是雙等號 (==)。」

「我知道要怎麼把貓放到變量裡。這幾乎就像個程式。」

「如何抓一隻貓:

1.拿出一個空盒子。

2.等待。」

「不對,阿米哥。你一次只能把一隻貓塞到一個盒子裡。呃,我的意思是你一次只能指定一個值給變量。

「我懂了。你可以再給我更多建立變量的範例嗎?」

「OK。我再重複一次:要建立(或宣告)一個變量,你需要使用型別的名稱,例如 «TypeName variableName»。」

代碼 解釋
1
String s;
建立一個名稱為 sString 變量。
這個變量可以儲存文字。
2
int x;
建立一個名稱為 xint 變量。
這個變量可以儲存整數。
3
int a, b, c;
int d;
建立名稱為 abcdint 變量。
這些變量可以儲存整數。

「喔!這樣我懂了!」

「千萬記住,你不能在同一個方法裡面建立兩個名稱相同的變量。」

「那不同的方法裡面呢?」

「可以,你能夠那麼做。那就像不同的房子裡有功能相同的盒子。」

「變量的名稱我可以愛怎麼取就怎麼取嗎?」

「幾乎是。但變量名稱不能包含空白、+ 號、- 號、諸如此類。最好是只用字母和數字來命名變量。」

「要記得 Java 是有大小寫敏感性的。int aInt a 並不一樣。

「對了,在 Java 裡面你可以在建立一個變量時,同時指定值給它。這能節省時間跟空間。」

簡潔代碼 等效但較長的代碼
1
int a = 5;
int b = 6;
int a;
a = 5;
int b;
b = 6;
2
int c = 7;
int d = c+1;
int c;
c = 7;
int d;
d = c+1;
3
String s = "I'm Amigo";
String s;
s = "I'm Amigo";

「那個方法簡潔清楚多了。」

「我們辦事都是這樣的。」

「每個 Java 新手都需要熟悉的兩個型別是:int (整數)String(文字/字串)。」

int 型別讓你把數字存到變量裡,並且對其進行運算:加、減、乘、除等等。」

代碼 解釋
1
int x = 1;
int y = x*2;
int z = 5*y*y + 2*y + 3;
x 等於 1
y 等於 2
z 等於 20+4+3,也就是 27
2
int a = 5;
int b = 1;
int c = (a-b) * (a+b);
a 等於 5
b 等於 1
c 等於 4*6,也就是 24
3
int a = 64;
int b = a/8;
int c = b/4;
int d = c*3;
a 等於 64
b 等於 8
c 等於 2
d 等於 6

「完全了解。程式總是這麼容易嗎?」

「說實話,沒錯。」

「太棒了!那,接下來呢?」

String 型別讓你儲存多行文字,也被稱為『字串 (string)』。」

「在 Java 裡要指定一個字串時,你需要把文字放在引號裡。下面是一些範例:」

代碼 解釋
1
String s = "Amigo";
s 包含 "Amigo"
2
String s = "123";
s 包含 "123"
3
String s = "123 + 456";
s 包含 "123 + 456"

「完全了解。看起來不難嘛。」

「再分享個好玩的事情給你。」

「你可以用加號 (+) 把字串接在一起。看看下面的範例。」

代碼 解釋
1
String s = "Amigo" + " is the best";
s 包含 "Amigo is the best"
2
String s = "";
s 包含一個空字串—就是一個裡面什麼符號也沒有的字串。
3
int x = 333;
String s = "Amigo" + x;
s 包含 "Amigo333"

「所以,你可以把字串和數字加在一起?」

「是的,但要記得,當你把字串和數字加在一起,得到的結果永遠是一個字串。」

「我有從你的範例推理出來。」

「如果你這麼聰明,那試試看在螢幕上顯示一個變量。」

「嗯。一個變量?在螢幕上?一點頭緒也沒有。」

「事實上很簡單。要把東西顯示在螢幕上,我們會使用 System.out.println() 命令,然後把任何我們想列印的東西作為引數傳進去。」

代碼 螢幕輸出
1
System.out.println("Amigo");
阿米哥
2
System.out.println("Ami"+"go");
阿米哥
3
String s = "Amigo";
System.out.println(s);
阿米哥
4
String s = "Am";
System.out.println(s+"igo");
阿米哥

「啊哈!有了範例一切清楚多了。」

「太好了。這裡有三個練習要給你喔。」

2
任務
Java 語法,  等級 0課堂 4
上鎖
對老師說好話
在神祕的 CodeGym 中心,每個老師都是頂尖師資。學生早在課程開始(等級 0)時應該就發現了,但他們很少有機會大聲說出來。但就連小貓也喜歡聽點好聽話啊,對吧?對於教程式設計的人來說,有什麼稱讚能比一個程式還好呢?而且如果這個程式還能印出正確的話語,那就更棒了!讓我們寫個稱讚人的程式吧。
2
任務
Java 語法,  等級 0課堂 4
上鎖
我的年輕朋友
在 3126 年,每個人都知道 System.out.println(),並且常常使用它。不是只有用這個命令來開始學習程式的 CodeGym 學生而已。甚至小孩子也用。讓我們來寫個程式顯示我朋友的真實出生年份吧。他是 8 年前出生的。
1
任務
Java 語法,  等級 0課堂 4
上鎖
宣告變量
在 Java 中,你不能什麼準備都不做就開始使用變量!這樣沒人知道你要幹嘛。編譯器不會懂,而且他們會跑來罵你—你很快就會知道了!所以如果你決定要對某個變量做點事情,你必須公開宣告你的意圖!讓我們寫個宣告 int 和 String 變量的程式。