Не в состоянии выполнить равенство строк - PullRequest
0 голосов
/ 10 октября 2018

Я пишу программу об обменных операциях между различными валютами.
В определенный момент программа просит пользователя ввести исходную валюту и проверить, находится ли введенная пользователем строка в пределах значений, указанных программой:

while (!isSet) {
    System.out.println("Give the Initial Currency:  USD | EUR | GBP | JPY | CHF | CAD | AUD");
    start_currency = scanner2.nextLine();

    if ((start_currency != "USD") && (start_currency != "EUR")
        && (start_currency != "GBP") && (start_currency != "JPY")
        && (start_currency != "CHF") && (start_currency != "CAD")
        && (start_currency != "AUD")
    ) {
        System.out.println("Please choose a value from the initial currencies specified above!");
    } else {
        isSet = true;
    }
}

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

Может ли кто-нибудь точно определить мою ошибку в вышеупомянутой частикод

1 Ответ

0 голосов
/ 10 октября 2018

Я думаю, что ваша проблема с логическими операторами.

Что вы в основном делаете, это:

¬(a and b)=(not a) or (not b)

Так что вам нужно будет поменять все свои операторы AND на операторы OR.

-> законы де Моргана

...