[Java學習筆記]第二課:第二支Java程式與基本錯誤判斷
在上一課中我們成功的在自己的電腦作業系統內建立好開發Java的環境,也試著用Notepad++寫了一支顯示出”Hello, world!”字串的小程式。現在來寫第二支Java程式,並學會一些基本的錯誤訊息判斷。
首先撰寫出以下程式:
1 2 3 4 5 6 7 8 9 10 11 |
import java.io.*; //引入io套件 public class Hello{ //宣告類別(若名稱第一個字是英文,盡量使用大寫)。若使用public權級來宣告,類別名稱必須和.java檔案名稱一樣。 public static void main(String[] args) throws IOException{ //程式進入點,加例外處理 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //建立可讀取鍵盤資料的BufferedReader物件實體 while(true){ //重複執行迴圈,因迴圈敘述並無break,故此迴圈為無窮迴圈 String s = br.readLine(); //由使用者輸入一行資料,並儲存到s字串變數中 System.out.println("Hello, " + s); //輸出字串,字串可用「+」運算子來連接 } } } |
上面的程式如果能正常編譯執行,執行結果應該如下圖。使用者每輸入一行字串,程式就會將其顯示在螢幕上,並在前面加上”Hello, “。
偵錯
編譯階段錯誤
javac不只能編譯java原始碼檔案,還能告訴你哪裡有錯誤,你只要照它上面寫的方法去改即可。以下是初學者常犯的幾個錯誤。
1.public權限的類別名稱跟檔案名稱不相同
在一個.java檔案內只能允許一個public存取權限的class,而且這個class的名稱必須和.java檔案的檔名一樣,否則編譯時會出現如下錯誤。
2.Java程式碼有分大小寫
Java的程式碼有分為大小寫,尤其是在使用內建類別的時候要注意類別名稱的字首一律為大寫英文字母。如果輸入錯誤會造成編譯器無法找到該類別,而出現以下錯誤。
3.忘記打分號
Java和C/C++一樣,都必須用分號來表示一行程式碼的結束。若沒有寫分號,則會出現以下錯誤。
4.使用內建類別時忘記引入相關套件
若要使用Java的內建類別,必須使用「import」關鍵字(Keyword)來引入相關套件。若沒引入,會發生以下錯誤。
執行階段錯誤
有些錯誤在Java編譯時檢查不出來,但在執行的時候會出現。以下是初學者常犯的幾個錯誤。
1.忘記寫程式進入點(main方法)或寫錯
執行Java程式必須要有程式進入點,正確的程式進入點寫法如下:
public static void main(String[] args){} |
若沒寫程式進入點或是寫錯,則會導致Java在執行階段時找不到main方法可以執行。
2.超出陣列索引
超出陣列索引範圍在這篇文章所給的程式中並不會出現,但是這也是新手常常犯的錯誤。如以下程式就會產生這種錯誤:
1 2 3 4 5 6 |
public class Array{ //宣告類別(若名稱第一個字是英文,盡量使用大寫)。若使用public權級來宣告,類別名稱必須和.java檔案名稱一樣。 public static void main(String[] args){ //程式進入點 int i[]=new int[]{5,6,3}; //宣告一個i整數陣列 System.out.println(i[3]); //取得陣列索引為3的值 } } |
陣列的索引是從0開始,因此陣列內若有三個元素,索引值僅有0~2,並不會有3,因而會產生錯誤。錯誤訊息如下圖: