无法执行字符串相等

时间:2018-10-10 08:25:43

标签: java string if-statement equals literals

我正在编写一个有关不同货币之间的兑换交易的程序。
在某个时候,程序会要求用户输入初始货币,并检查用户输入的字符串是否在程序指定的值之内:

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 :(得分:2)

我认为您的问题出在逻辑运算符上。

您基本上在做什么:

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

因此,您需要将所有AND运算符更改为OR运算符。

->迪摩根定律