这段代码不会在多个ORS(即||)上执行if语句,而且我不知道为什么,有人可以帮忙吗? Java的新手。

    if (!"A123".equals(itemNumber) || !"A55".equals(itemNumber) || !"B750".equals(itemNumber)
                                   || !"C650".equals(itemNumber))
    {
        System.out.print("\nInvalid Item. Try again. ");
        System.out.print("\nEnter an item number or END to exit: ");
        itemNumber = keyboard.nextLine();
    }
    System.out.printf("\nThank you. %s", itemNumber);

最佳答案

在您的代码中,您要问“如果项目编号不等于“ A123”或“ A55”或“ B750”或“ C650”,请执行这些操作”。因此,当您输入“ A55”时,程序会检查“ A55”不等于“ A123”或“ A55” ....哦,它不等于“ A123”,因此条件为真。

如果您改变这样的要求。 “如果项目编号不等于“ A123”,“ A55”,“ B750”和“ C650”,请执行这些操作”。因此,当您输入“ A55”时,程序将检查“ A55”不等于“ A123”和“ A55” ...哦,它不等于“ A55”,因此条件为假。例,

if (!"A123".equals(itemNumber) && !"A55".equals(itemNumber) && !"B750".equals(itemNumber) && !"C650".equals(itemNumber))
{
    System.out.print("\nInvalid Item. Try again. ");
    System.out.print("\nEnter an item number or END to exit: ");
    itemNumber = keyboard.nextLine();
}
System.out.printf("\nThank you. %s", itemNumber);


或者您可以将您的要求更改为类似的内容,
“如果项目编号等于“ A123”或“ A55”或“ B750”或“ C650”,则打印“谢谢”,否则将执行这些操作。”这是正确的。例,

if ("A123".equals(itemNumber) || "A55".equals(itemNumber) || "B750".equals(itemNumber) || "C650".equals(itemNumber))
{
    System.out.printf("\nThank you. %s", itemNumber);
}
else{
    System.out.print("\nInvalid Item. Try again. ");
    System.out.print("\nEnter an item number or END to exit: ");
    itemNumber = keyboard.nextLine();
}

关于java - Java不等于字符串语法不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51073896/

10-09 00:53