我如何 return 到这个 while 循环中的输入?

How would I return to the input in this while loop?

如果输入无效,我试图让它循环回输入。

if(userSelection == 'G') {
     String genderPrompt = "Please enter animal's gender\n" + "Male\n" + "Female";
     System.out.println(genderPrompt);
     String animalGender = readInput.nextLine().toLowerCase();
                    
     System.out.println(animalGender);
                    
     while(!animalGender.equals("male") && !animalGender.equals("female")) {
          System.out.println("Invalid Selection.");
          System.out.println(genderPrompt);
     }
                    
     animal.setGender(animalGender);
     System.out.println("Animal Gender has been set to " + animal.getGender());

试试这个。

if (userSelection.equals("G")) {   
    String animalGender;
            
    do {              
        String genderPrompt = "Please enter animal's gender \nMale \nFemale";
        System.out.println(genderPrompt);
        animalGender = sc.next().toLowerCase();
    } while (!animalGender.equals("male") && !animalGender.equals("female"));

     animal.setGender(animalGender);
     System.out.println("Animal Gender has been set to " + animal.getGender());                
}

请记住,当您创建一个 while 循环时,您需要编辑或更新变量,以便条件最终变为假,否则循环将无限继续。

由于您的 while 循环根据 animalGender 的值运行,因此通过在 while 循环内接收用户输入来更新 animalGender 是有意义的。通过这样做,如果用户的 animalGender 无效,我们输出错误并要求他们输入另一个:

while (!animalGender.equals("male") && !animalGender.equals("female")) {
    System.out.println("Invalid Selection.");
    System.out.println(genderPrompt);
    animalGender = readInput.nextLine().toLowerCase();
}