Java循环3次,然后给出正确的输出
Java循环3次,然后给出正确的输出,java,loops,Java,Loops,我正在申请一个政治或天文学方面的测验 我的问题是,当你说“政治”或“天文学”时,它会再问你两次你的输入,然后再给出所需的“测试”输出 代码如下: import java.util.Scanner; public class Main { public static void main(String[] args) { do { if (getAnswer().equalsIgnoreCase("neither")) {
我正在申请一个政治或天文学方面的测验 我的问题是,当你说“政治”或“天文学”时,它会再问你两次你的输入,然后再给出所需的“测试”输出 代码如下:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
do {
if (getAnswer().equalsIgnoreCase("neither")) {
System.out.println("Please enter \'astronomy\' or \'politics\'.");
}
getAnswer();
}
while(getAnswer().equalsIgnoreCase("neither"));
System.out.println("test");
}
public static String getAnswer() {
Scanner quizType = new Scanner(System.in);
System.out.println("Would you like to be quizzed on politics or astronomy?");
String typeAnswer = quizType.next();
if (typeAnswer.equalsIgnoreCase("politics")) {
return "politics";
}
else if (typeAnswer.equalsIgnoreCase("astronomy")) {
return "astronomy";
}
else {
return "neither";
}
}
}
有什么想法吗?谢谢这里没有必要
getAnswer()
三次,只需将getAnswer()
转换成字符串变量即可
像这样:
public static void main(String[] args) {
String answer = "";
do {
answer = getAnswer();
if (answer.equalsIgnoreCase("neither")) {
System.out.println("Please enter \'astronomy\' or \'politics\'.");
}
} while (answer.equalsIgnoreCase("neither"));
System.out.println("test");
}
public static String getAnswer() {
Scanner quizType = new Scanner(System.in);
System.out.println("Would you like to be quizzed on politics or astronomy?");
String typeAnswer = quizType.next();
if (typeAnswer.equalsIgnoreCase("politics")) {
return "politics";
} else if (typeAnswer.equalsIgnoreCase("astronomy")) {
return "astronomy";
} else {
return "neither";
}
}
如果您正在学习do while,那么您只需要在do中进行提示。当前您正在调用getAnswer
三次,这将强制重复提示
下面是使用do while解决此问题的快速方法
public static void main(String[] args) {
List<String> validAnswers = Arrays.asList("neither","politics","astronomy");
String answer;
do {
answer = promptForAnswer();
} while(!validAnswers.contains(answer));
System.out.println("test");
}
public static String promptForAnswer() {
System.out.println("Would you like to be quizzed on politics or astronomy?");
return new Scanner(System.in).next();
}
publicstaticvoidmain(字符串[]args){
List validAnswers=Arrays.asList(“两者都不是”、“政治”、“天文学”);
字符串回答;
做{
回答=提示回答();
}而(!validAnswers.contains(答案));
系统输出打印(“测试”);
}
公共静态字符串promptForAnswer(){
println(“你想接受政治或天文学方面的测验吗?”);
返回新扫描仪(System.in).next();
}
或者你可以使用while循环
public static void main(String[] args) {
List<String> validAnswers = Arrays.asList("neither","politics","astronomy");
while(!validAnswers.contains(promptForAnswer())) {
System.out.println("That was not a valid response, try again!");
}
System.out.println("test");
}
public static String promptForAnswer() {
System.out.println("Would you like to be quizzed on politics or astronomy?");
return new Scanner(System.in).next();
}
publicstaticvoidmain(字符串[]args){
List validAnswers=Arrays.asList(“两者都不是”、“政治”、“天文学”);
而(!validAnswers.contains(promptForAnswer())){
System.out.println(“这不是有效的响应,请重试!”);
}
系统输出打印(“测试”);
}
公共静态字符串promptForAnswer(){
println(“你想接受政治或天文学方面的测验吗?”);
返回新扫描仪(System.in).next();
}
谢谢!顺便问一下,你知道这是否是学习Java的好播放列表吗: