use*_*743 0 java loops while-loop
即使我输入有效的输入并且找不到它的错误,这个循环仍然给我错误信息.它与程序中的其他循环相同,都可以正常工作.有谁知道这个问题?这是循环:
System.out.println("Male or Female (M/F)");
gender = userInput.next().charAt(0);
gender = Character.toLowerCase(gender);
while((gender != 'm') || (gender != 'f')) {
System.out.println("ERROR Please enter a valid age");
System.out.println("Male or Female (M/F)");
gender = userInput.next().charAt(0);
gender = Character.toLowerCase(gender);
}//end while
Run Code Online (Sandbox Code Playgroud)
现在,如果我输入"m"或"f",它会给我错误信息吗???? ???
while((gender != 'm') || (gender != 'f')) {
Run Code Online (Sandbox Code Playgroud)
应该真的
while((gender != 'm') && (gender != 'f')) {
Run Code Online (Sandbox Code Playgroud)
条件(gender != 'm') || (gender != 'f')总是评估为true.要了解原因,请考虑一个案例 - gender = 'm'......
(gender != 'm') || (gender != 'f')
('m' != 'm') || ('m' != 'f')
false || true
true
Run Code Online (Sandbox Code Playgroud)
基本上,java不懂常见的英语习语if gender isn't (either) male or female.