java - do while 循环错误

标签 java swing oop loops

嘿,大家好,我这里有一个程序,其中用户需要猜测程序本身询问的单词。这些代码没有语法错误,但我的问题是,每次您输入所要求的正确单词时,JOptionPane(ErrorMessage)仍然会出现。

我想要发生的是,用户只能进行 5 次尝试,一旦用户在最后一次尝试中输入了错误的单词,它应该显示所要求的正确单词。一旦用户输入了正确的单词,它应该转到下一个单词。请帮我解决这个问题,我已经被困在这里大约 3 个小时了。非常感谢。

private void guessedWordActionPerformed(java.awt.event.ActionEvent evt) {                                            
        int trials = 5;
        boolean tryAgain = true;

        do{

        if (wordLibrary.isCorrect(wordIdx, guessedWord.getText())){
            JOptionPane.showMessageDialog(null, "Your answer is correct! Guess another word.","", JOptionPane.INFORMATION_MESSAGE);
            getRootPane().setDefaultButton(nextTrial);
            guessedWord.setText("");

            wordIdx = (wordIdx + 1) % wordLibrary.getSize();
            scrambledWord.setText(wordLibrary.getScrambledWord(wordIdx));
            guessedWord.setText("");
            getRootPane().setDefaultButton(guessButton);
            guessedWord.requestFocusInWindow();
            tryAgain = false;
            }
        else if (!wordLibrary.isCorrect(wordIdx, guessedWord.getText())) {
            JOptionPane.showMessageDialog(null, "Your answer " + guessedWord.getText() + " is wrong.\n   Number of trials remaining: " + trials ,
                    "Incorrect Answer", JOptionPane.ERROR_MESSAGE);
            trials--;
            guessedWord.setText("");
            tryAgain = true;
        }
        }while(tryAgain && trials > 0);

        guessedWord.requestFocusInWindow();
    }

//This is the isCorrect method
public boolean isCorrect(int idx, String userGuess) {
        return userGuess.equalsIgnoreCase(getWord(idx));
    }

最佳答案

这发生在您执行的操作中。当您循环时,您不会给用户任何时间输入新信息。

为什么要在这里循环?你不需要它。只需检查一次。如果错误,请更改组件并等待再次调用 ActionPerformed

如果你想给出最大试验次数,那么你应该使用某种形式的非局部变量来存储它。

关于java - do while 循环错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21581061/

相关文章:

java - 多模块项目 : reuse static method between test classes from different modules

php - 后增量和追溯兼容性

ruby - 嵌套模块命名空间? ruby

java - 数据类型接口(interface)数组

java - Java 中二维 int 数组优化的洪水填充

java - JButton 不显示

java - 如何使用 JLabel 在一个程序中添加几张相同的图像?

java - 关于继承的Java类的性质的问题

java - 从扫描仪传递值时出现异常

Java swing - 多个控件的相同处理程序