質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

1343閲覧

明解Javaの演習問題7-10です

km1023

総合スコア23

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2019/02/11 08:48

編集2019/02/11 08:54

暗算計算のプログラムです。
暗算の問題に正解した後の繰り返しのメソッド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コード

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

LouiS0616

2019/02/11 08:59

足りないScannerのインポートを加えれば、全く問題無く動作します。 上書き保存をし忘れているとか、別のプログラムを起動しているとか、そのような凡ミスでないか再度お確かめください。
km1023

2019/02/11 09:42 編集

メソッドのこの部分 System.out.print("もう一度行いますか?<Yes・・・1/No・・・0> : "); cont = abc.nextInt(); を逆に記述していて、編集した後保存せずに実行していたので「もう一度行いますか?」が出ずにエラーだと思い込んでいました。 Scannerのインポートは質問内容のコードに記述し忘れでした。 ありがとうございます。
LouiS0616

2019/02/11 09:45

解決されたようで何よりです。 その内容を回答欄に転記して、自己解決として質問を閉じてください。
guest

回答1

0

自己解決

メソッドのこの部分
System.out.print("もう一度行いますか?<Yes・・・1/No・・・0> : ");
cont = abc.nextInt();
を逆に記述していて、編集した後保存せずに実行していたので「もう一度行いますか?」が出ずにエラーだと思い込んでいました。

Scannerのインポートは質問内容のコードに記述し忘れでした。
ありがとうございます。

package sample; import java.util.Scanner; import java.util.Random; public class L7101 { static Scanner abc = new Scanner(System.in); static boolean confirmRetry() { int cont; do { System.out.print("もう一度行いますか?<Yes・・・1/No・・・0> : "); cont = abc.nextInt(); }while (cont != 0 && cont != 1); return cont == 1; } public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ Random rand = new Random(); System.out.println("暗算力トレーニング"); do { int x = rand.nextInt(900) + 100; int y = rand.nextInt(900) + 100; int z = rand.nextInt(900) + 100; int pattern = rand.nextInt(4); int kotae; switch (pattern) { case 0 : kotae = x + y + z; break; case 1 : kotae = x + y - z; break; case 2 : kotae = x - y + z; break; default : kotae = x - y - z; break; } while (true) { System.out.print(x + ((pattern < 2) ? " + " : " - ") + y + ((pattern % 2 == 0) ? " + " : " - ") + z + " = "); int k = abc.nextInt(); if ( k == kotae) {System.out.print("正解"); break;} System.out.println("不正解"); } } while(confirmRetry()); } } コード

投稿2019/02/11 11:41

km1023

総合スコア23

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問