Ich teste eine boolesche Logik und bleibe stecken, wenn ich den logischen Operator in if ändere, wenn Ausdruck von & & zu ||, Programm dann nicht richtig funktioniert und nur die erste Anweisung ausführt, abgesehen davon, welche Eingabe ich verwende. Kann jemand dieses Verhalten erklären?Warum Operator || funktioniert hier nicht?
((gender != 'M' || gender != 'F') || (age < 0))
public static void main(String[] args)
{
char gender = 'W';
int age = 0;
Scanner scan = new Scanner(System.in);
System.out.println("Type gender: ");
gender = scan.nextLine().charAt(0);
System.out.println("Type age: ");
age = scan.nextInt();
if((gender != 'M' && gender != 'F') || (age < 0))
{
System.out.println("Error in typed values");
}
else if((gender == 'M') && (age < 18))
{
System.out.println("Boy");
}
else if((gender == 'M') && (age >= 18))
{
System.out.println("Man");
}
else if((gender == 'F' && age < 18))
{
System.out.println("Girl");
}
else if((gender == 'F' && age >= 18))
{
System.out.println("Woman");
}
}
}
Post-Scanner-Code. –
Was erwarten Sie von Ihrem Zustand? – SMA
Ihre 'if'-Bedingungen schließen sich gegenseitig aus, da' else if' verwendet wird. Daher wird nur einer, wenn überhaupt, jemals angewendet werden. – Mena