Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

switch文で星座判定をするプログラムです。

java初心者です。教えてください。
switch文で星座判定するプログラムを作っていて、コンパイルできた
のですが、実行すると、星座判定が間違っています。


switch文のところです。

int y;
int z;

y=(int)(Math.random()*12);
z=(int)(Math.random()*31);

switch(y+z){
    
      case 1:g.drawString("あなたは1月生まれです。",120,100);
                if(y==1 && z<=20){
                          g.drawString("あなたは山羊座です。",120,150);
               }
               else{
                         g.drawString("あなたは水瓶座です。",120,150);
              }
                 break;

これを月に合わせて12個作りました。
intの部分は自信ないのですが、コンパイルができたのでこのままで
す。

どうしてコンパイルできたのに、実行すると月も星座の判定も違うの
かわかりません。
一応、月を入れるところと日にちを入れるところを別々に作りまし
た。
質問がわかりづらくてすみません。
お願いいたします・・・


2

回答

84359

閲覧

2件の回答

評価

0

なぜ動かないかを質問する前に自分なりにデバッグしてみる
ことをお勧めします。プログラミング初心者であっても
System.out.printlnにより変数の値を出力して確認してみる
といったことは簡単に行えると思います。
そうやってデバッグしてもなぜそう動くのかがわからないと
きに質問しても遅くないと思います。

少しのデバッグをすることで今よりプログラムがかけるよう
になると思いますよ!

評価

0

>どうしてコンパイルできたのに、実行すると月も星座の
判定も違うの
>かわかりません。

「英語で『これはペンです』と言え」という問題に対し
て、
 "This is ペン"と書けばコンパイルエラー。
"This is a pin."と書けばコンパイルエラーではないが正
しくない。
この2つの違いを、まずは認識することだ。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。