Code Fix

初級

} expected の原因と直し方

波括弧の対応が崩れたときに出ます。エラー行がファイル末尾やブロック末尾を指すため、原因箇所の特定にコツが要ります。

エラーメッセージの読み方

Program.cs(5,2): error CS1513: } expected
Program.cs
ファイル名
5
行番号
2
列番号 — この位置でコンパイラが解析に失敗しました
CS1513
エラーコード — 検索するとMicrosoftの解説ページが見つかります
} expected
内容 — 期待していたもの、または受け付けられなかったもの

このエラーが出る典型パターン

パターン1

 1  class Program {
 2      static void Main(string[] args) {
 3          System.Console.WriteLine("Hello");
 4       
        ^
 5  }
Program.cs(5,2): error CS1513: } expected

Mainメソッドの閉じ括弧が足りません。コンパイラはファイル末尾まで読んでから対応が崩れていることに気づきます。

直し方: (空)} にします。

この問題を解いてみる →

広告
広告スロット(未設定)

パターン2

 1  class Program {
 2      static void Main(string[] args) {
 3          int n = 3;
 4          if (n > 0) {
 5              System.Console.WriteLine("positive");
 6           
            ^
 7      }
 8  }
Program.cs(8,2): error CS1513: } expected

if文の閉じ括弧が足りません。波括弧の対応はインデントを揃えて数えると見つけやすくなります。

直し方: (空)} にします。

この問題を解いてみる →

パターン3

 1  class Program {
 2      static void Main(string[] args) {
 3          System.Console.WriteLine("A");
 4      }
 5   
    ^
Program.cs(4,6): error CS1513: } expected

クラス自体の閉じ括弧が足りません。エラー行はファイル末尾を指しますが、原因はもっと上にあります。

直し方: (空)} にします。

この問題を解いてみる →

よくある誤解

エラー行はファイルの終わり(またはブロックの終端)を指しますが、実際に閉じ忘れているのはもっと上の行です。インデントを揃えて対応を数えるほうが確実です。

まとめ

} expectedは初級でつまずきやすい項目です。上の3パターンを実際に手で直すと、エラーメッセージのどこを読めばよいかが掴めます。

演習をはじめる

関連するエラー

広告
広告スロット(未設定)