Java | 「文」と空白・改行の扱い

Java Java
スポンサーリンク

Java エラーを読んで原因を探る練習(基礎編)


「エラーを読んで原因を考える練習」は、プログラミング上達の近道です。
ここでは Java 初心者がよく出す 典型的なエラー例 5パターン をもとに、
「実際のエラー出力 → 原因 → 修正方法」をまとめます。

例題1:セミコロン忘れ

コード

public class Main {
    public static void main(String[] args) {
        System.out.println("Hello")
        System.out.println("World");
    }
}
Java

実行結果(エラー出力)

Main.java:3: error: ';' expected
        System.out.println("Hello")
                                      ^
1 error

原因

➡ 「セミコロン ; が必要です」という意味。
文の終わりがどこかを Java が判断できない状態です。

修正

System.out.println("Hello");
Java

例題2:識別子(単語)の途中に空白がある

コード

public class Main {
    public static void main(String[] args) {
        Sys tem.out.println("Hi");
    }
}
Java

エラー出力

Main.java:3: error: cannot find symbol
        Sys tem.out.println("Hi");
        ^
  symbol:   class Sys
  location: class Main
1 error

原因

➡ Java が「Sys というクラスが見つからない」と言っています。
System の途中にスペースを入れてしまい、別の名前と認識されたためです。

修正

System.out.println("Hi");
Java

例題3:波かっこの数が合っていない

コード

public class Main {
    public static void main(String[] args) {
        System.out.println("Start");
    // ← 閉じかっこが1つ足りない!
Java

エラー出力

Main.java:5: error: reached end of file while parsing
}
 ^
1 error

原因

➡ 「ファイルの終わりに来たけど、まだブロックが閉じていない」という意味。
{ に対応する } を忘れています。

修正

public class Main {
    public static void main(String[] args) {
        System.out.println("Start");
    }
}
Java

例題4:メソッド名のスペルミス

コード

public class Main {
    public static void main(String[] args) {
        System.ou.println("Hello");
    }
}
Java

エラー出力

Main.java:3: error: cannot find symbol
        System.ou.println("Hello");
              ^
  symbol:   variable ou
  location: class System
1 error

原因

➡ 「System クラスに ou というメンバはありません」と言っています。
out の打ち間違いです。

修正

System.out.println("Hello");
Java

例題5:大文字・小文字のミス

コード

public class Main {
    public static void main(String[] args) {
        system.out.println("Hi");
    }
}
Java

エラー出力

Main.java:3: error: cannot find symbol
        system.out.println("Hi");
        ^
  symbol:   variable system
  location: class Main
1 error

原因

➡ Java は大文字・小文字を区別するため、System を小文字で書くと別物になります。

修正

System.out.println("Hi");
Java

練習課題(自分で試してみよう)

問1:

次のコードをコピーして実行し、出てきたエラーメッセージを読んで原因を考えてください。

public class Practice {
    public static void main(String[] args) {
        System.out.println("Start")
        System.out.println("End");
    }
}
Java

ヒント:「; expected」と出たらセミコロン忘れ!


問2:

public class Practice {
    public static void main(String[] args) {
        Sys tem.out.println("Test");
    }
}
Java

ヒント:「cannot find symbol」と出たらスペルや空白を疑おう!


問3:

public class Practice {
    public static void main(String[] args) {
        System.out.println("Start");
}
Java

ヒント:「reached end of file while parsing」と出たら {} の対応を確認!


まとめ:エラー文の読み方コツ

英語メッセージ意味よくある原因
';' expectedセミコロンが必要行末の ; 忘れ
cannot find symbolシンボル(名前)が見つからないスペルミス、空白、宣言忘れ
reached end of file while parsingファイルの終わりで構文が終わらない{ の閉じ忘れ
class, interface, or enum expected構文の位置が間違っているクラスの外にコードを書いた
variable might not have been initialized変数が初期化されていない変数宣言だけで代入なし

タイトルとURLをコピーしました