08/07/05 06:08:13
>>843
なんという予想通りw。一応まとめ↓
// 前略。でも int N=Integer… ← int num2=Integer・・・ だよね
// >843のif(N==num)のところから置き換え
if(N<=0 || 10<N) continue; // 入力が1~10でなければループの先頭からやり直す
if(num==N){ // 正解の場合。ループを抜ける
System.out.println("あたりです。答えは"+num+"です。"); //正解のときに表示するんだから普通ここに書くべき
break;
}
if(num < N){
System.out.println("もっと小さいです。");
}else{ // すでに==にはなり得ないのでelseで十分
System.out.println("もっと大きいです。");
}
// ↓ここにelseをつけないのが重要。else ifは、それ以前のifがヒットした時に無視される
if(num-2 <= N && N <= num+2){ // num-2 <= N <= num+2 の意味。
System.out.println("惜しい");
}
} while(true);
数直線にしてみるとわかると思うが、else if((num != N && N… あたりの不等号が明らかにおかしい。
if((num != N && N > num+2)||(num != N && N < num-2)) には、
あと、random()は0もとり得るので、ソコは
int num = (int)(Math.random()*10) + 1; とかのほうがマシかと。
いや、Javaはあんま知らんから違ってたら誰か直して。