if语句中的多个条件-first始终为true

时间:2019-02-03 11:39:06

标签: java if-statement

为什么第一个if语句始终为真?

private String setDepartment (){
   int code = Integer.parseInt(JOptionPane.showInputDialog("Enter The Department Code:\n" +
            "1:Sales\n" +
            "2:Development\n" +
            "3:Accounting\n" +
           "4:None"));

    /*Why this if statement is always true? How do i solve it? */
    if (code !=1 || code !=2 || code !=3 || code !=4)
    {
        JOptionPane.showMessageDialog(null, "Invalid Number.Enter a number between 1-4");
        setDepartment();
    }

    if (code==1){
        return "Sales";
    }
    else if (code==2){
        return "Development";
    }
    else if (code==3){
        return "Accounting";
    }
    else
        return "";
    }

4 个答案:

答案 0 :(得分:1)

||替换为&&

if (code !=1 && code !=2 && code !=3 && code !=4)

答案 1 :(得分:0)

您需要使用AND而不是OR。

如果用户输入1,则它会自动不同于2,3和4。

因此,您可以使用:

if (code !=1 && code !=2 && code !=3 && code !=4)

OR

if (code ==1 || code ==2 || code ==3 || code ==4)

答案 2 :(得分:0)

从第一原则开始,选择code = 1

  code !=1 || code !=2 || code !=3 || code !=4
= 1    !=1 || 1    !=2 || 1    !=3 || 1    !=4
= false    || true     || true     || true
= true

您的意思可能是&&,而不是||

答案 3 :(得分:0)

因为在任何时间点,代码值都是1-4中的任何一个。 4个条件中的3个永远都是正确的。将您的if条件更改为

from([1, 2]).pipe(
    reduce((acc, curr) => {
        return acc + ' ';
    }, '')
);