入力検証コードに問題があります。プロンプトが表示されたシード値を入力しますが、その後、選択したメニューを印刷するために別の有効な入力を入力する必要があります。メニューの選択肢の1つも選択するたびに発生します。
入力検証は、1 から 5 までの整数値のみを受け取ることになっています。そのため、誰かが文字、負の数、または範囲外の整数を入力すると、メニューの選択を続行できるように入力するよう求められます。
コードを間違って書いていますか?その不要な 2 番目の入力を取り除き、ゲームを続行するために必要なのは 1 つだけです。また、6 ~ 9 は無効としてカウントされますが、何らかの理由で 10 個の作品の後の値にも気付きます。なぜそれが機能するのかわかりません。ありがとう!
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
}