gpt4 book ai didi

java - 仅重定向循环内的循环 "else"

转载 作者:行者123 更新时间:2023-12-02 11:40:21 24 4
gpt4 key购买 nike

我是一个完全的初学者,正在做练习作业。如果用户回答错误,我需要能够重新打印相同的添加问题,但我不知道该怎么做。我的所有尝试都导致出现新的随机添加问题或向原始随机添加另一个新随机,这也是不希望的。我确信这很简单,但我迷路了。预先感谢您提供任何提示!

package ov3uppgift8;
import java.util.Scanner;
import java.util.Random;

public class Ov3uppgift8 {

public static void main(String[] args) {
Scanner input = new Scanner(System.in);
Random rand = new Random ();

System.out.println("*****************");
System.out.println("* MATH TRAINING *");
System.out.println("*****************");
System.out.println("Enter 0 to close program.");
int ans;
do {
int a = rand.nextInt(10) + 1;
int b = rand.nextInt(10) + 1;
System.out.print(a + " + " + b +" = ");
ans = input.nextInt();

if (ans==(a+b)) {
System.out.println("CORRECT!");
} else if (ans==0) {
System.out.println("Good bye!");
} else if (ans!=(a+b)) {
System.out.println("Incorrect, try again.");
}
} while (ans!=0);
}

}

最佳答案

稍微简化一下你的代码,不要想太多。每次进入循环时,您都会生成答案,在外部生成数字,以便它们保持一致,而且,不需要 do-while,如果答案正确或它们放置 0,则只需中断循环即可。另外,您需要确保用户输入了数字,因此在获取输入时应放置 try-catch。

Scanner input = new Scanner(System.in);
Random rand = new Random ();

System.out.println("*****************");
System.out.println("* MATH TRAINING *");
System.out.println("*****************");
System.out.println("Enter 0 to close program.");

int a = rand.nextInt(10) + 1;
int b = rand.nextInt(10) + 1;

int ans;

while (true) {
System.out.printf("%d + %d = ?%n", a, b);

try {
ans = Integer.parseInt(input.next());
} catch (NumberFormatException e) {
System.out.println("Please enter a number!");
continue;
}

if (ans == 0) {
System.out.println("Goodbye!");
break;
} else if (ans == a + b) {
System.out.println("Correct!");
break;
} else {
System.out.println("Incorrect!");
}
}

关于java - 仅重定向循环内的循环 "else",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48621345/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com