2015年11月24日 星期二

Java 學習日誌 021:Assignment Statement中declare與initialize的規則與相容性


理論上,我們無法不能賦予一個variable不是他的type的值,例如:

int intVariable;
intVariable = 2.99;

以上式子會被顯示為錯誤,因為2.99的type是double,而intVariable的type是int

不過在某些情況下,我們可以賦予一個variable不是他的type的值。我們可以賦予有小數type(例如type double)的variable,一個整數type(例如type int)的值,舉例來說:

double doubleVariable;
doubleVariable = 2;

以上的式子是正確的,因為doubleVariable的值會被解讀為2.0

同樣地,我們也可以歸類擁有小數type的variable在擁有整數type的variable底下,例如:

int intVariable;
intVariable = 42;
double doubleVariable;
doubleVariable = intVariable;

總結來說,在下面的式子中,我們可以賦予擁有後者type的variable,前者的值:

byte -> short -> int -> long -> float -> double

以上規則可以成立的原因是,越往右邊,其涵蓋的範圍越大。

參考資料:Walter Savitch. Absolute Java. 5th ed.

2015年11月23日 星期一

Java 學習日誌 020:Assignment Statement的縮寫


之前在「Java 學習日誌 018」裡提過assignment statement的三種例子,而其中的一種(例子中的第三種):

Variable = Variable Op (Expression)

為可持續變換variable的值的assignment statement,有縮寫的型式為:

Variable Op = Expression

其中,Expression可為另一個variable、常數或一個較複雜的運算式;Op可以為+、-、*、/或%以及一些還沒提到的運算子,例如:


















參考資料:Walter Savitch. Absolute Java. 5th ed.

2015年11月21日 星期六

Java 學習日誌 019:Intialized Variables


如果一個variable有被宣告(declare)它的特性,但是還沒被賦予價值,例如還沒在一個assignment statement式子中被賦予價值,那我們稱它為uninitialized(未初始化的)。所以,若一個variable要被使用的話,必須被 1. declare(宣告)特性 2. initialize(初始化)價值。

為了避免遺忘這兩個步驟其中之一,一個很好的方式是將這兩個步驟寫在一個式子中,例如:

int count = 0;
double speed = 65.5;
char grade = "A";
int initialCount = 50, finalCount;

由上述第四個例子中可以看出,在一個式子中可以initialze一些variable的同時,不initialize另一些variable。

參考資料:Walter Savitch. Absolute Java. 5th ed.

2015年11月17日 星期二

Java 學習日誌 018:Assignment Statement


改變variable的值最直接的方法在之前文章有稍微提過,就是利用assignment statement(指定敘述)。在Java中,等號(=)為一種assignment operator(指派運算子)。一段assignment statement中,會有一個variable在assignment operator(等號)的左手邊,一段敘述在assignment opertor的右手邊,並且也是以分號作為結尾。在assignment operator右手邊敘述的部分,有可能是一個variable、一個數字,或是一段由variable、數字、運算子以及還沒提到的method invocation(方法調用)組成的較複雜的敘述。

一段assignment statement的作用,是指示電腦去運算assignment operator右邊的敘述後,賦予assignmnet operator左邊的variable運算後的結果。以下為assignment statement的三種例子:

totalWeight = oneWeight * numberOfBeans;
temperature = 98.6;
count = count + 2;

第一個例子賦予totalWeight的值為oneWeight裡的數值乘以numberOfBeans裡的數值;第二個例子賦予temperature的值為98.6;第三個例子賦予新的count的值為舊的count的值加2(variable在等號的兩邊都可能出現)。

若一個assignment statement是用作賦予一個variable一個值(例如上述第二個例子),你可以連接數個variable在一個assignment statement中,例如:

number2 = ( number1 = 3);

由於一個assignment statement的運算是由右到左來看,因此也可直接將此式子看作:

number2 = number1 = 3;

參考資料:Walter Savitch. Absolute Java. 5th ed.