こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

列挙型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」と、エラーメッセージが、表示されてしまいます。何処がおかしいのでしょうか?

投稿日時 - 2006-11-03 06:33:32

QNo.2514531

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

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

投稿日時 - 2006-11-03 22:24:45

お礼

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

投稿日時 - 2006-11-18 08:31:24

ANo.2

#1です。

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

投稿日時 - 2006-11-03 20:40:31

お礼

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

投稿日時 - 2006-11-03 22:02:08

ANo.1

>for( Fruts fruts : Fruts10.values()) {
じゃなくて
for( Fruts10 fruts : Fruts10.values()) {
です。

>シンボルを見つけられません
と言われたら、クラスや変数が定義されていないという意味ですので、良く見直してください。親切にも何が定義されていないのかまで教えてくれるので見つけるのは簡単です。

ちなみにフルーツの綴りが間違ってます…

投稿日時 - 2006-11-03 09:45:55

補足

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

投稿日時 - 2006-11-03 12:29:41

あなたにオススメの質問