0

即使我输入了一个有效的输入并且我找不到它有什么问题,这个循环也会不断地给我我的错误消息。这与我在程序中的其他循环一样,都可以正常工作。有谁知道这个问题?这是循环:

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

现在,如果我输入“m”或“f”,它会给我错误消息吗???????

4

1 回答 1

6
while((gender != 'm') || (gender != 'f')) {

真的应该

while((gender != 'm') && (gender != 'f')) {

条件(gender != 'm') || (gender != 'f')总是计算为true。要了解原因,请考虑一种情况 - gender = 'm'...

(gender != 'm') || (gender != 'f')
('m'    != 'm') || ('m'    != 'f')
false           || true
true

基本上,java 不知道常见的英语习语if gender isn't (either) male or female

于 2013-09-10T15:01:05.607 回答