1

我正在使用 acm 包参加在线 java 课程,因此以下语法可能不是“正统 java”。无论如何,希望我在这里提出的观点能够传达给那些熟悉包装的人,否则:

我在下面的代码用于验证用户输入的 java 中的刽子手游戏,但是进入,我确信我可以用一个 if else 语句来做到这一点,但最终为了权宜之计,我决定添加一个嵌套的 if , 否则声明。我无法弄清楚如何在一个 if else 语句中重构此代码,这让我很烦恼,因为我确信至少有一种非常明显的方法可以做到这一点。任何帮助将非常感激!

private void turn()
{
    println("The word now looks like this: " + currentWord);
    println("You have " + guessesLeft + " guesses left.");
    currentGuess = readLine("Your guess: ");

    String temp = currentWord;

    /*test for legality of guess
     * 1) is it exactly 1 char long?(ie not blank nor a long string
     * 2) is it a letter?
     */
    if(currentGuess.length() == 0)
    {
        println("That is an illegal guess.");
    }
    else{
        char guessedLetter = Character.toUpperCase(currentGuess.charAt(0));

        if(currentGuess.length() != 1 || !Character.isLetter(guessedLetter))
        {
            println("That is an illegal guess.");
        }
        else{
        /*scan through secret word to find a match between
         * entered guess and secret word
         */ ......}

private String currentGuess;
private String currentWord;
4

1 回答 1

0

好吧,为了您的== 0检查,也许您应该返回退出该功能。由于仅保留非零长度猜测,因此您的外部 else 块消失,然后您可以在最外层继续处理您的代码。不知道方法如何完成,我认为这可能是最好的方法。

于 2014-02-05T13:43:37.217 回答