Как настроить бесконечный цикл в сканерах?

#java #while-loop #equals #control-structure

#java #while-цикл #равно #структура управления

Вопрос:

Я новичок в Java, поэтому у меня возник вопрос по этому поводу Я пытаюсь создать простой код, в котором я с этим покончил, просто я хотел знать, как вы настраиваете бесконечно задаваемый вопрос, который пользователь может ввести? Тот, который у меня есть сейчас, выполняет бесконечный цикл, что бесполезно…

     import java.util.Scanner;
    public class Logical_Operators {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
    
            Scanner input = new Scanner(System.in);
            
            //this is a conditional scenario, where only boys above the age of 18 can enter
            //and only girls equal to or over the age of 20 
            
            String gender, boy, girl, response;
            int age;
            
            System.out.println("Welcome to the party! Would you like to enter?");
            response = input.nextLine();
        
        while(!response.equals("yes") amp;amp; !response.equals("no"))    {
            System.out.println("Please say Yes or No");
        }
        {
            
            if(response.equals("yes"))  {       
                
                System.out.println("What gender are you? Type boy or girl.");
                gender = input.nextLine();
                
                System.out.println("What about your age?");
                age = input.nextInt();
                
                    if(gender.equals("boy") amp;amp; age >= 18)   {
                    System.out.println("You can enter, Welcome!"); 
                    
                }
                    else if(gender.equals("girl") amp;amp; age >= 20) {
                    System.out.println("You can enter, Welcome!");  }
                 
                    else { System.out.println("Sorry, you may not enter because you don't meet the age requirements");  }
                
            }
            
            else if(!(response.equals("yes")||response.equals("no")))   {
                System.out.println("Please say Yes or No");
                
            }
            
            else { 
                System.out.println("Bye, hope to see you again!");
            }
            
        System.exit(1);
        }
            
        }
    
    }

  

Комментарии:

1. Пожалуйста, исправьте отступы в вашем исходном коде, это облегчает чтение (специально для вас).

Ответ №1:

Чтобы выйти из цикла, вам нужно получить новое значение для тестирования

 response = input.nextLine();

while(!response.equals("yes") amp;amp; !response.equals("no"))    {
    System.out.println("Please say Yes or No");
    response = input.nextLine();
}
  

Комментарии:

1. Привет, спасибо за ответ, это сработало. Но есть ли способ, которым я могу сделать то же самое для пола и то же самое для возраста? Например, бесконечный цикл. Я пытался использовать тот же метод, но он просто продолжает задавать вопрос, даже если я ввожу boy или girl.

2. Вы должны иметь возможность использовать точно такую же логику. Не забудьте заменить «да» и «нет» новыми условиями, которые вы запрашиваете