我正在尝试使用 Java
进行编码,并从基本的重复加法测验开始。
重复加法直到输入正确答案效果很好,但是,当我尝试将其限制为 3 次试验时,它不会在 3 次停止,而是进行 4 次试验,如下所示,
import java.util.Scanner;
public class RepeatAdditionQuiz {
public static void main(String[] args) {
// TODO Auto-generated method stub
int number1 = (int) (Math.random() * 10);
int number2 = (int) (Math.random() * 10);
Scanner input = new Scanner(System.in);
System.out.print("What is " + number1 + " + " + number2 + " : " );
int answer = input.nextInt();
int count = 0;
while(count < 3) {
if (number1 + number2 != answer) {
System.out.print("Try again, What is " + number1 + " + " + number2 + " : " );
answer = input.nextInt();
}
else
System.out.println("You're correct ");
count ++;
}
System.out.println("Your trails ended ");
}
}
这是我的输出,
What is 1 + 2 : 8
Try again, What is 1 + 2 : 6
Try again, What is 1 + 2 : 9
Try again, What is 1 + 2 : 9
Your trails ended
正如你所看到的,我有四个轨迹,第一个轨迹。当我尝试在 while
循环(打印 What is 1 + 2 :
)之前删除第一个用户输入时,我在控制台中看不到任何内容。我怎样才能将其限制为3?
在python
中我可以做这样的事情,
from random import randint
number1 = randint(0,9)
number2 = randint(0,9)
answer = number1 + number2
count = 0
while count < 3:
print(number1, "+", number2)
user_answer = int(input("What is number1 + number2: "))
if answer == user_answer:
print("yes, you're right")
break
else:
print("You're wrong, please enter again")
count +=1
print("Sorry, all trials are done! ")
我得到这样的输出,正好三个路径(每次我输入错误的答案),
8 + 5
What is number1 + number2: 16
You're wrong, please enter again
8 + 5
What is number1 + number2: 18
You're wrong, please enter again
8 + 5
What is number1 + number2: 18
You're wrong, please enter again
Sorry, all trials are done!
我在java
中犯了什么错误?在 while
循环中是否有更好的方法?任何建议将不胜感激。
最佳答案
在这种情况下我更喜欢使用 do-while 循环
import java.util.Scanner;
public class RepeatAdditionQuiz {
public static void main(String[] args) {
// TODO Auto-generated method stub
int number1 = (int) (Math.random() * 10);
int number2 = (int) (Math.random() * 10);
Scanner input = new Scanner(System.in);
System.out.print("What is " + number1 + " + " + number2 + " : ");
int answer = input.nextInt();
int count = 1;
do {
if (number1 + number2 != answer) {
System.out.print("Try again, What is " + number1 + " + " + number2 + " : ");
answer = input.nextInt();
} else{
System.out.println("You're correct ");
break;
}
count++;
} while (count < 3);
System.out.println("Your trails ended ");
}
}
在此我将计数初始化为 1,因为我们已经在实例化时提供了答案输入。
关于java - 限制重复加法测验 - While 循环 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46481830/