我的输入验证码有问题。我输入了它提示我的种子值,但之后我必须输入另一个有效输入才能打印出我的菜单选项。每次我也选择菜单选项之一时都会发生这种情况。
输入验证应该只接受 1 到 5 之间的整数值。因此,如果有人输入不在范围内的字母、负数或整数,它会要求他们输入一个,以便他们可以继续菜单选择。
我是不是写错了代码?我想摆脱不必要的第二个输入,只需要一个就可以继续游戏。由于某种原因,我还注意到 10 个作品之后的值,即使 6-9 被视为无效。我不确定为什么会这样。谢谢!
import java.util.Random;
import java.util.Scanner;
public class Sonowah
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
System.out.print("Please enter a seed value [integer]: ");
//assume input is integer for seed for RNG
int seed = in.nextInt();
Random rng = new Random(seed); //RNG
int charge = 100;
//loop here
while (charge > 0)
{
int number;
do
{
while (!in.hasNextInt(5))
{
System.out.println("Please enter valid interger");
in.next();
}
number = in.nextInt();
}
while (number <= 0);
System.out.println("Interger is valid!");
System.out.println("1. Surrender");
System.out.println("2. Defend");
System.out.println("3. Fight");
System.out.println("4. Charge");
System.out.println("5. Potions");
String menuchoice = in.next();
if (menuchoice.equals("1"))
{
statement
}