Цикл for и операторы if, else if

public class LoopBreaker {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String answer;
        int loopSetup = 3;

        for(int i = 1;i < loopSetup; i++) {
            System.out.println("I`m LoopBreaker!");
            System.out.println("Can I help you?");
            answer = scan.nextLine();
            if(answer == "yes") {
                loopSetup+=3;
            } else if(answer == "no") {
                i+=5;
            } else if (answer != "yes" || answer != "no") {
                System.out.println("Can I help you?");
                answer = scan.nextLine();
            }
        }
    }
}

Дан код. В нём пользователь должен ввести "yes" или "no", иначе программа должна вывести вопрос и должна ожидать корректный ответ. Однако в коде есть ошибка, из-за которой после ответа "yes" или "no" программа задаёт вопрос снова(так быть не должно).Но при вводе чего-либо, что не совпадает с "yes" и "no", то программа работает нормально.


Ответы (1 шт):

Автор решения: Алексей г
public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String answer;
        System.out.println("I`m LoopBreaker!");
        System.out.println("Can I help you?");

        while (true) {
            answer = scan.nextLine();
            if (answer.equals("yes")) {
                break;
            } else if (answer.equals("no")) {
                break;
            }
            System.out.println("Can I help you?");
        }
    }

Как то так, если я правильно понял задание. Ну и согласно тому что делает сейчас этот код.

→ Ссылка