2-1.3 變數初始化(Initialize)

2011年8月10日 星期三

| | |

2-1.3 變數初始化(Initialize)
      
      當我們宣告一個變數時,就如同建立了一個空箱子。這時候,如果我們嘗試從該箱子中取出東西的話,會發生什麼結果呢?

Chap2_1_7.java
// 顯示x與y的和以及平均值(不正確,觀察錯誤訊息。)
class Chap2_1_7 {

public static void main(String[] args) {
int x; // x為int型態的變數
int y; // y為int型態的變數

System.out.println("x的值為" + x + "。");                   // 顯示x的值
System.out.println("y的值為" + y + "。");                // 顯示y的值
System.out.println("x+y的和為" + (x + y) + "。");        // 顯示x+y的和
System.out.println("x及y的平均值為" + (x + y) / 2 + "。");  // 顯示平均值
}
}

結果
D:\chap2\ Chap2_1_7.java:8: variable x might not have been initialized
System.out.println("x的值為" + x + "。");                   // 顯示x的值
                           ^
D:\chap2\ Chap2_1_7.java:9: variable y might not have been initialized
System.out.println("y的值為" + y + "。");                // 顯示y的值
                           ^
2 errors


程式說明:
1. 這是一個很容易犯的錯誤當變數沒有給定任何值時,變數是一個空的箱子,當然也就
   無法從一個空的箱子中取出任何東西。
2. java: 8: variable x might not have been initialized 這個訊息的意思是,”變數x沒有被初始化”,即變數x沒有被給予任何值。當生這種編譯錯誤時,編譯程式無法順利完成編譯,也就無法建立對應的類別檔(.class),程式就不能執行

[重要] 不要試著存取未給定數值的變數。

    在學習寫java程式的過程中,能夠讀懂java 的錯誤訊息是一件非常重要的事情。在編譯程式過程中java編譯器會針對任何錯誤,顯示對應的錯誤。因此,我們可以從所顯示的錯誤訊息,知道犯了那些錯誤,予以適當的修正,讓程式可以順利地執行,進而提升撰寫程式的能力。

[重要] 嘗試學習並瞭解程式所顯示的任何錯誤訊息。

宣告時的初始化
 
      如果,在宣告變數這個箱子時,就已經知道要放入的東西。那麼,最好的方式直接把東西一併放入。這樣的話,可以避免之後發生存取不到東西的問題

[重要] 盡量在宣告變數時,一併指定變數的值。

Chap2_1_8.java
// 顯示x與y的和以及平均值 (將變數初始化)
class Chap2_1_8 {

public static void main(String[] args) {
int x = 48; // x為int型態的變數
int y = 57; // y為int型態的變數

System.out.println("x的值為" + x + "。");                  // 顯示x的值
System.out.println("y的值為" + y + "。");               // 顯示y的值
System.out.println("x+y的和為" + (x + y) + "。");       // 顯示x+y的和
System.out.println("x及y的平均值為" + (x + y) / 2 + "。"); // 顯示平均值
}
}

結果
x的值為48。
y的值為57。
x+y的和為105。
x及y的平均值為52。


程式說明 :

       Chap2_1_8 中灰底部份,直接在宣告變數 x y時,同時完成變數的初始化動作,也就是分別將48 和57定給x y。

初始化

雖然,就給定變數值來看,本程式與Chap2_1_6所做的指定結果相同但是,在將值放入箱子的時間是不同的,如圖2-10所示

*

圖2-10
[補充] 初始化: 在宣告變數的同時,一併指定變數的值
[補充] 指: 在宣告變數後,然後在不同的時間點,指定變數的值

      在宣告及初始化變數時,亦可用
int x = 48 ,  y=57;


多行程式碼宣告及初始化,合併為行宣告。

練習題 2-1
        三個 int 的變數,分別為x,y及z,計算其三數相加之總合、相乘之積及平均值後,按照以下格式輸出。

x,y,z 三數之和為 12。
x,y,z 三數之積為  60。
x,y,z 三數之平均值為  4。

0 意見:

張貼留言