Помогите с циклом

146
28 июня 2018, 10:50
import java.util.Scanner;
public class Test {
    public static void act() {
        String phrase;
        Scanner sc = new Scanner(System.in);
        System.out.println("Да или нет?");
        String ans[] = {"да", "нет"};
        phrase = sc.next();
        phrase = phrase.toLowerCase(); //конвертируем всю строку в строчные буквы
        boolean a = phrase.equals(ans[0]);
        boolean b = phrase.equals(ans[1]);
        if (a || b) {
            System.out.println("На что ты ответил то?!");
        } else {
            while (!a || !b) {
                System.out.println("Я просто просил ответить 'да' или 'нет', не более!");
                phrase = sc.next();
                a = phrase.equals(ans[0]);
                b = phrase.equals(ans[1]);
                System.out.println(a);
                System.out.println(b);
            }
        }
    }
}

Почему, если дело доходит до цикла, он исполняется вечно. Помогите исправить. Не понятно почему значение a и b не меняется на false.

Answer 1

Вы когда вводите "да" или "нет" один из этих вариантов будет положительный, а второй отрицательный.

a = phrase.equals(ans[0]);
b = phrase.equals(ans[1]);

И условие

!a || !b

всегда будет истина. Делайте проверку по одному условию, а не по двум.

if(phrase.equals(ans[0])({
    a = true;
}else{
    a= false;
};

Как-то так

READ ALSO
Может ли абстрактный метод находиться в неабстрактном классе?

Может ли абстрактный метод находиться в неабстрактном классе?

Поясните пожалуйста момент с UML диаграммы:

177
Запрос из Java-кода на сервер с помощью REST

Запрос из Java-кода на сервер с помощью REST

Необходимо передавать из java-программы строку на сервер, там её вставить в определённое поле, инициировать submit и строку из другого поля возвращать...

198
java, DbUnit, FlatXmlDataSetBuilder

java, DbUnit, FlatXmlDataSetBuilder

времени суток! Ситуация, я пишу тест с обращением к базе данных (postegreSQL), использую DbUnit для эмуляции базы данных, данные для базы данных содержаться...

207