【初心者】Java質問・相談スレッド116【歓迎】at TECH
【初心者】Java質問・相談スレッド116【歓迎】 - 暇つぶし2ch853:デフォルトの名無しさん
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はあんま知らんから違ってたら誰か直して。


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch