式が& &から||に論理演算子を最初に変更すると、ブール論理がテストされていますが、プログラムが正しく動作していないため、使用する入力以外の最初の文だけが実行されます。誰かがこの行動を説明できますか?なぜ演算子||ここでは働いていないのですか?
((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");
}
}
}
スキャナコード。 –
あなたの状態はどうなると思いますか? – SMA
あなたの 'if'条件は' else if'の使用のために相互に排他的です。したがって、もしあれば1つだけが適用されます。 – Mena