Rubyのエラー『SyntaxError: unexpected end-of-input』の解決方法

『SyntaxError: unexpected end-of-input』は、Rubyコードの記述が正しく終了していない場合に発生するエラーです。このエラーが発生する理由と、具体的な解決方法を解説します。
目次
エラーの発生条件
- ブロックやメソッドが正しく閉じられていない。
- カッコやクォーテーションが対応していない。
- コードの構文が途中で終了している。
- ファイルの末尾で必要な記述が不足している。
エラーメッセージ
SyntaxError: unexpected end-of-input, expecting 'end'
do/endブロックが閉じられていない場合
[1, 2, 3].each do |n|
puts n
endを追加して解決します。
[1, 2, 3].each do |n|
puts n
end
if文が閉じられていない場合
if x > 10
puts "x is greater than 10"
endを追加します。
if x > 10
puts "x is greater than 10"
end
メソッドが閉じられていない場合
def greet(name)
puts "Hello, #{name}"
endを忘れないように記述します。
def greet(name)
puts "Hello, #{name}"
end
カッコやクォーテーションの対応が不足している場合
以下のような記述はエラーを引き起こします。
puts("Hello
カッコを正しく閉じる必要があります。
puts("Hello")
複数の構文が混在している場合
構文が複雑な場合、endやカッコが抜けていることがあります。
def example
[1, 2, 3].each do |n|
if n > 1
puts n
すべてのendを確認して追加します。
def example
[1, 2, 3].each do |n|
if n > 1
puts n
end
end
end
ファイルの末尾でエラーが発生する場合
コードファイルの最後でunexpected end-of-inputが発生する場合、endが不足している可能性があります。構文全体を確認して、不足しているendを追加します。
複雑な構造を整理する
コードが複雑になるとendの不足が発生しやすくなります。コードを整理し、インデントを揃えることでエラーを防ぐことができます。
def example
[1, 2, 3].each do |n|
if n > 1
puts n
end
end
end
デバッグツールを利用する
デバッグツールやエディタの構文チェック機能を利用することで、endの不足を簡単に検出できます。
まとめ
『SyntaxError: unexpected end-of-input』は、コードの記述が不完全な場合に発生します。構文全体を見直し、endやカッコ、クォーテーションの対応を確認することで解決できます。また、エディタの支援機能を活用してエラーを早期に検出することをおすすめします。
-
前の記事
Uncaught SyntaxError: Unexpected end of inputの解決方法 2025.06.13
-
次の記事
PHPエラー『Notice: Trying to Get Property of Non-object』の解決方法 2025.06.14
コメントを書く