• 締切済み

列挙型switch文での利用が、実行できません

或る書籍で、Javaを独習しているビギナーです。 何方か、ご教授をお願い致します。 「列挙型switch文での利用」との項目で、下記ソースプログラムをそれぞれ入力しましたが、コンパイルが、通りません、何処がおかしいのでしょうか? [Fruts10.java] enum Fruts10 { APPLE, ORANGE, BANANA } [Enum.java] class Enum { public static void main(String[] args) { for( Fruts fruts : Fruts10.values()) { switch( fruts ) { case APPLE : System.out.println("りんご :" + fruts); break; case ORANGE : System.out.println("みかん :" + fruts); break; case BANANA : System.out.println("バナナ :" + fruts); break; } } } } [Fruts.java]の方は、コンパイル通りましたが、[Enum.java]の方が、コンパイルすると、「シンボルを見つけられません、クラスFruts、変数APPLE、変数ORANGE、変数BANANA」と、エラーメッセージが、表示されてしまいます。何処がおかしいのでしょうか?

みんなの回答

  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.3

switch文の外側にforループがあるのを失念しておられるように見受けます。

yu28ka14
質問者

お礼

hrm_mmm様 アドバイスを有難うございました。 問題解決には至っていませんが、さらに、勉強してゆきます。

  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.2

#1です。 >switch文の機能が成されていないですよね! 入力実行の仕方が、おかしいですか? 実行結果は正しいです。ソースを読めばわかりますが、引数に対しての処理は何一つしていないので引数を与えたところで何の意味もありません。 何となくソースを写すのではなく、どんなことを実行しているのかちゃんと考えながら写しましょう。

yu28ka14
質問者

お礼

Bonjin様 度重なる回答を、有難う御座います。勉強中の私には、switch文とは この場合、「APPLE」と入力したら、case APPLE: が処理され、 実行結果、「りんご : APPLE」だけが、表示されるものと、解釈して いました。  もう少し考えて見ます。 

  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.1

>for( Fruts fruts : Fruts10.values()) { じゃなくて for( Fruts10 fruts : Fruts10.values()) { です。 >シンボルを見つけられません と言われたら、クラスや変数が定義されていないという意味ですので、良く見直してください。親切にも何が定義されていないのかまで教えてくれるので見つけるのは簡単です。 ちなみにフルーツの綴りが間違ってます…

yu28ka14
質問者

補足

Bonjin様 早速の回答有難うございます。再度、質問させていただきます。 書籍には、for(Fruts fruts : Fruts10.values()) { となって いました、又、綴りも上記の通りで、Bonjin様の指摘通り、 Fruts10に、しました所、コンパイルは通りました。そこで C:\java>java Enum APPLE と入力実行した所、 りんご : APPLE みかん : ORANGE バナナ : BANANA と、実行結果が表示されました。これでは、switch文の機能が 成されていないですよね! 入力実行の仕方が、おかしいですか?

関連するQ&A

専門家に質問してみよう