• ベストアンサー

コンパイルエラーが解決できません

Java初心者です。サンプルコードを実行しながら勉強しているのですが以下のプログラムを実行するとコンパイルエラーになってしまいます。 バージョンはJ2SE5.0です。 //列挙型サンプルプログラム public class Sample3_4 { public enum Dept {KOKUGO, SHAKAI, SANSU, RIKA} public static void main(String[] args) { System.out.println("-------- 特定要素の取り出し ----------"); Dept d1 = Dept.SANSU; System.out.println(d1); System.out.println("-------- 全要素の取り出し ----------"); Dept[] d = Dept.values(); for(int i = 0; i < d.length; i++); System.out.println(d[i]); //上記の3行は以下と置き換えることができる //for(Dept d: Dept.values()); //System.out.println(d); System.out.println("-------- switch 文での利用 ----------"); System.out.println("算数は" + course(Dept.SANSU)); } public static String coures(Dept d) { switch(d) { case KOKUGO: case SHAKAI: return "文系"; case SANSU: case RIKA: return "理系"; default: throw new AssertionError(d + "はありません"); } } } ・エラー内容 Sample3_4.java:13:シンボルを見つけられません。 シンボル:変数i 場所 :Sample3_4 の クラス System.out.println(d[i]); Sample3_4.java:20:シンボルを見つけられません。 シンボル:メソッド course(Sample3_4.Dept) 場所 :Sample3_4 の クラス System.out.println("算数は" + course(Dept.SANSU)) 環境変数などを調べてPathを追加してみたりしたのですが、うまくいきません。エラーの原因はどこにあると考えられるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

>エラーの原因はどこにあると考えられるのでしょうか? Pathなど何も関係なくて、ちゃんとコンパイラがエラーの場所を教えてくれてますよ。 >Sample3_4.java:13:シンボルを見つけられません。 >シンボル:変数i for文の終わりにセミコロンがついているので、 System.out.println(d[i]); これはfor文の外になっています。 その為、変数iはfor文の外ではスコープ範囲外なので使用できませんね。その結果が、 >Sample3_4.java:13:シンボルを見つけられません。 となっています。 もう一個は、No.1の方も仰っているように、 course coures と微妙につづりが違います。 これを直せば通るのではないかな。

kimuchichi
質問者

お礼

ありがとうございます!解決できました!

その他の回答 (1)

  • prophetok
  • ベストアンサー率44% (13/29)
回答No.1

for(int i = 0; i < d.length; i++); ←このセミコロンが不要 System.out.println(d[i]); System.out.println("算数は" + course(Dept.SANSU)); public static String coures(Dept d) { よく見てごらん、メソッドの綴りが違うよね。

kimuchichi
質問者

お礼

ありがとうございます!解決できました!

関連するQ&A

専門家に質問してみよう