(Java)在嵌套的if语句中使用关系运算符比较char值

时间:2015-08-10 23:43:12

标签: java char operators nested-if

我是这里的新手,刚刚在教科书中遇到过这个问题。我目前正在学习嵌套if语句,但我似乎无法使其工作(即使教科书说它是正确的)。这是一个猜字母游戏,但每次答案都被视为"不正确" "嵌套if语句" ( if(ch< answer)System.out.println("太低了!"); )即使输入字母低于&#39的字母也永远不会被读取; K&#39 ;.打印输出将始终显示为“太高!”#34;。对此有任何见解将非常感激。

class GuessLetter {
    public static void main(String args[])
        throws java.io.IOException {

        char ch, answer = 'K';

        System.out.println("I'm thinking of a letter between A and Z.\nCan you guess it?");

        ch = (char) System.in.read();

        if (ch == answer) { 
            System.out.println("Correct!");
        } else{
            System.out.println("Incorrect!");

            **if (ch < answer ){
                System.out.println("Too low!");**
            } else {
                System.out.println("Too high!");
            }
        }   
    }
}

1 个答案:

答案 0 :(得分:1)

它有效,你可能正在进入&#34; k&#34;而不是大写字母&#34; K&#34;。 如果你输入一个字母&#34;更大&#34;然后&#34; K&#34;,它将打印&#34;不正确!太高了!&#34;。

(同样适用于太低的字母,如果我输入&#34; J&#34;它会说它太低了。)