if else语句出错

Kyo*_*shi 0 java if-statement

我正在写一些文字冒险,但我在开始时遇到了一个错误.我想询问玩家的性别,一切运作良好,但是如果写错了性别的消息则不会显示.

我究竟做错了什么?

        if (scan.next().equalsIgnoreCase("Frau")) {
            System.out.println("Oh eine Dame des" + sClanname + " Clans");
            sGender = scan.next();
        } else if (scan.next().equalsIgnoreCase("Mann")) {
            System.out.println("Oh ein Herr des" + sClanname + " Clans");
            sGender = scan.next();
        } else {
            System.out.println("Entschuldige, wir sind hier sehr konservativ...Es gibt nur \"Mann\" oder \"Frau\"");
        }
Run Code Online (Sandbox Code Playgroud)

我也试过了

    if (scan.next().equalsIgnoreCase("Frau") || scan.next().equalsIgnoreCase("Mann")) {
        System.out.println("Oh eine Dame des" + sClanname + " Clans");
        sGender = scan.next();
    } else {
        System.out.println("Entschuldige, wir sind hier sehr konservativ...Es gibt nur \"Mann\" oder \"Frau\"");
    }
Run Code Online (Sandbox Code Playgroud)

if (!scan.next().equalsIgnoreCase("Frau") && !scan.next().equalsIgnoreCase("Mann")) {
    System.out.println("Entschuldige, wir sind hier sehr konservativ...Es gibt nur \"Mann\" oder \"Frau\"");
}
Run Code Online (Sandbox Code Playgroud)

Era*_*ran 6

您没有Stringifelse if语句中进行比较,因为每次调用scan.next()都会String从输入中返回一个新的读取.

您应该将String存储在变量中并重新使用它:

    String s = scan.next();
    if (s.equalsIgnoreCase("Frau")) {
        System.out.println("Oh eine Dame des" + sClanname + " Clans");
        sGender = scan.next();
    } else if (s.equalsIgnoreCase("Mann")) {
Run Code Online (Sandbox Code Playgroud)