Почему первый оператор if всегда верен?
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 ""; }
Потому что в любой момент времени значение кода будет любым из 1-4.И 3 из 4 условий всегда будут верными.Измените условие if на
If( !( code ==1 || code == 2 || code == 3 || code == 4))
Вам нужно использовать AND вместо OR.
Если пользователь вводит 1, то оно автоматически отличается от 2,3 и 4.
Поэтому вы можете использовать:
if (code !=1 && code !=2 && code !=3 && code !=4)
ИЛИ
if (code ==1 || code ==2 || code ==3 || code ==4)
Исходя из первых принципов, выбрав code = 1:
code = 1
code !=1 || code !=2 || code !=3 || code !=4 = 1 !=1 || 1 !=2 || 1 !=3 || 1 !=4 = false || true || true || true = true
Вы, вероятно, имели в виду &&, а не ||.
&&
||
Заменить || на &&: