はじめに:はじめてのJavaで出る定番エラー
Javaの勉強を始めて最初に書いたコード。環境構築も済ませて、「Hello, World!」を出力するプログラムを書いて、いざ実行ボタンを押したその瞬間——
エラー: ';' がありません
こんなエラーが出て、画面が真っ赤になってびっくりした経験はありませんか?
実はこれ、Java初心者がほぼ確実に一度はぶつかるエラーなんです。最初はびっくりするかもしれませんが、このエラーの意味と原因を知っておけば、すぐに解決できます。
今回はこの「’;’ がありません(’;’ expected)」というエラーの意味を丁寧に解説し、どうやって直せばいいのかをわかりやすく紹介していきます。
‘;’ がありませんってどういう意味?
Javaでは、基本的に1つの命令(文)の終わりには「;(セミコロン)」が必要です。これは日本語でいうところの「句点(。)」「読点(、)」のようなもので、文の区切りを明確にする役割を持っています。
このエラーは、 「本来セミコロンが必要な場所に、それが書かれていません」 ということをコンパイラが知らせてくれているのです。
つまり、あなたが書いたコードのどこかに「セミコロンが必要なのに書かれていない場所」がある、ということになります。
よくあるミス1:出力文の末尾に「;」を忘れる
Javaで何かを出力する際には、よく以下のようなコードを書きます。
public class Main {
public static void main(String[] args) {
System.out.println("こんにちは") // ←ここにセミコロンがない!
}
}
このように、出力文 System.out.println("こんにちは")
の末尾にセミコロンを付け忘れてしまうと、次のようなエラーメッセージが表示されます。
Main.java:3: エラー: ';' がありません
System.out.println("こんにちは")
^
このエラーは、「ここにセミコロンを付けてください」という意味です。具体的には System.out.println("こんにちは");
のように書き直せば解決できます。
修正方法
System.out.println("こんにちは"); // ← 最後にセミコロンを追加!
このように、Javaでは文の終わりには必ずセミコロンが必要であることを意識しましょう。
よくあるミス2:if文やfor文にセミコロンを入れてしまう
初心者の方にありがちなのが、条件分岐(if文)やループ文(for文など)で、必要のないセミコロンをうっかり書いてしまうというパターンです。
以下のコードを見てみましょう。
if (x > 0);
{
System.out.println("正の数です");
}
このコード、一見正しく見えますが、実は if
文の条件のあとにセミコロン ;
が入っていることで、条件に関係なく必ず System.out.println
が実行されてしまいます。
これは、「if の条件を満たすかどうかに関係なく、次のブロックが常に実行されてしまう」という、とても危険なミスです。
このように、「必要なところにセミコロンがない」だけでなく、「不必要な場所にセミコロンを入れてしまう」こともエラーやバグの原因になります。
エラーを見つけるポイント
Javaで「’;’ がありません」というエラーが出たときにチェックすべきポイントを整理しておきましょう。
System.out.println
やint x = 10
のような1つの命令の終わりには必ずセミコロンをつけること- 「この文はここで終わっているかも?」と思ったら、その末尾にセミコロンがあるか確認する
- エラーが表示されている行だけでなく、その1つ前の行も確認する(エラーは実際よりも少し後ろに出ることがあります)
- 不要な場所(
if
文やfor
文の条件の直後など)にセミコロンを入れていないかチェック
このように、エラーメッセージをヒントにしながらコードを一つずつ確認していくと、原因が見えてきます。
まとめ:セミコロンはJavaの「句読点」
今回紹介した「’;’ がありません」というエラーは、Javaにおいてとても基本的かつ重要なエラーです。
- Javaでは命令(文)の終わりに必ず「;」をつける必要がある
- セミコロンの付け忘れは文法エラーになる
- 不要な場所にセミコロンを入れることも、動作不良の原因になる
- エラーメッセージを落ち着いて読み、どこが間違っているかを丁寧に確認することが大切
セミコロンはJavaにおける「文の終わりを示す記号」です。日本語の「。」や「、」のような感覚で捉えると覚えやすくなります。
Java初心者のうちは、「セミコロン忘れた!」というミスを何度も繰り返します。ですが、それで落ち込む必要はまったくありません。誰もが通る道ですし、そのたびに学んで少しずつ慣れていけばOKです。
エラーはあなたの敵ではなく、プログラムを正しく動かすためのヒントをくれる存在です。怖がらず、エラーと仲良くなって、どんどん上達していきましょう。
次回予告
次回は、「変数が見つかりません(cannot be resolved to a variable)」という、これまたよく出てくるエラーを解説予定です!
お楽しみに!
コメント