基本的に、プログラミングしなければならないこの数学クイズで最後に行う必要があるのは、ユーザーにさらに問題に答えたいかどうかを尋ねることです。そうであれば、メイン メソッドのすべてを再実行します。いいえの場合は、さようならを印刷します。いいえは簡単ですが、はいと言った場合にメインメソッドを再実行するように指示する方法がわかりません。これが私のメインメソッドのコードです。
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int digit = 0;
String result1 = getUserChoice("");
digit = getNumberofDigit1(digit);
int numberOfProblems = amountOfProblems();
for (int i = 0; i < numberOfProblems; i++) {
int number1 = getRandomNumber1(digit);
int number2 = getRandomNumber2(digit);
System.out.println("Enter your answer to the following problem: \n" +
number1 + result1 + number2);
int correctAnswer = getCorrectAnswer(number1, result1, number2);
int userAnswer = getUserAnswer();
CheckandDisplayResult(correctAnswer, userAnswer);
}
System.out.println("Would you like to solve more probelms(Y/N)? ");
String moreProblems = in.next();
if ("Y".equals(moreProblems)){
digit = 0;
result1 = getUserChoice("");
digit = getNumberofDigit1(digit);
numberOfProblems = amountOfProblems();
for (int i = 0; i < numberOfProblems; i++) {
int number1 = getRandomNumber1(digit);
int number2 = getRandomNumber2(digit);
System.out.println("Enter your answer to the following problem: \n" +
number1 + result1 + number2);
int correctAnswer = getCorrectAnswer(number1, result1, number2);
int userAnswer = getUserAnswer();
CheckandDisplayResult(correctAnswer, userAnswer);
}
System.out.println("Would you like to solve more probelms(Y/N)? ");
moreProblems = in.next();
if ("Y".equals(moreProblems)){
}
System.out.println("Thank you for taking this quiz, Goodbye!");
}
今、私は次のようなことを試しました、
if "Y".equals(moreProblems)){ main メソッドをコピーして貼り付ける }
しかし、それには無限ループが必要になるというエラーがあります。これは、yes の場合ごとにより多くの問題ステートメントが必要になるためです。つまり、コーディングが賢明に終了することはなく、コピーと貼り付けを永遠に続けることになります。