暗算計算のプログラムです。
暗算の問題に正解した後の繰り返しのメソッドconfirmRetry()を実行せずに終了してしまうのですがお分かりの方ご教授ください。
import
1import java.util.Random; 2 3public class L7101 { 4 5 static Scanner abc = new Scanner(System.in); 6 7 static boolean confirmRetry() { 8 int cont; 9 do { 10 System.out.print("もう一度行いますか?<Yes・・・1/No・・・0> : "); 11 cont = abc.nextInt(); 12 }while (cont != 0 && cont != 1); 13 return cont == 1; 14 } 15 16 public static void main(String[] args) { 17 // TODO 自動生成されたメソッド・スタブ 18 19 Random rand = new Random(); 20 21 System.out.println("暗算力トレーニング"); 22 do { 23 int x = rand.nextInt(900) + 100; 24 int y = rand.nextInt(900) + 100; 25 int z = rand.nextInt(900) + 100; 26 int pattern = rand.nextInt(4); 27 28 int kotae; 29 switch (pattern) { 30 case 0 : kotae = x + y + z; break; 31 case 1 : kotae = x + y - z; break; 32 case 2 : kotae = x - y + z; break; 33 default : kotae = x - y - z; break; 34 } 35 36 while (true) { 37 System.out.print(x + ((pattern < 2) ? " + " : " - ") + 38 y + ((pattern % 2 == 0) ? " + " : " - ") + 39 z + " = "); 40 int k = abc.nextInt(); 41 if ( k == kotae) 42 {System.out.print("正解"); break;} 43 System.out.println("不正解"); 44 } 45 } while(confirmRetry()); 46 } 47 48} 49コード
足りないScannerのインポートを加えれば、全く問題無く動作します。
上書き保存をし忘れているとか、別のプログラムを起動しているとか、そのような凡ミスでないか再度お確かめください。
メソッドのこの部分
System.out.print("もう一度行いますか?<Yes・・・1/No・・・0> : ");
cont = abc.nextInt();
を逆に記述していて、編集した後保存せずに実行していたので「もう一度行いますか?」が出ずにエラーだと思い込んでいました。
Scannerのインポートは質問内容のコードに記述し忘れでした。
ありがとうございます。
解決されたようで何よりです。
その内容を回答欄に転記して、自己解決として質問を閉じてください。
次からでいいのでタイトルには要件(つまり起きている問題や実現したい事)を書くようにしてください。
このタイトルには要件らしい要件が何も含まれていません
https://teratail.com/help/question-tips#questionTips3-1
回答1件
あなたの回答
tips
プレビュー