我正在编写一个有关不同货币之间的兑换交易的程序。
在某个时候,程序会要求用户输入初始货币,并检查用户输入的字符串是否在程序指定的值之内:
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;
}
}
程序在无法执行代码的情况下通过了这段代码(好像条件始终为假)。
有人可以在代码的上述部分中指出我的错误吗?
答案 0 :(得分:2)
我认为您的问题出在逻辑运算符上。
您基本上在做什么:
¬(a and b)=(not a) or (not b)
因此,您需要将所有AND运算符更改为OR运算符。
->迪摩根定律