如何编写代码,如果事情发生,之后没有其他事情发生?

时间:2014-02-27 15:45:11

标签: java

让我们说如果游戏的最后一级被打败,那么你就不会显示一个对话框,询问玩家是否想要进入下一级别,而是进入主菜单。所以,如果事情发生了,那么事后发生的事情就不会发生。

private void submitButtonActionPerformed(java.awt.event.ActionEvent evt) {                                             

    final ImageIcon pokeballIcon = new ImageIcon("C:\\Users\\bacojul15\\Pictures\\pokeball5.gif");
    final ImageIcon pokemoneggIcon = new ImageIcon("C:\\Users\\bacojul15\\Pictures\\nidoking.gif");
    final ImageIcon pokemonredIcon = new ImageIcon("C:\\Users\\bacojul15\\Pictures\\red.gif");

    String userAnswer = answertextArea.getText().trim();

        if (userAnswer.equalsIgnoreCase(answers.get(questionNumber))) {

            answerLabel.setText("Correct");
            levelScore ++;
            triviagui.totalScore ++;


        } else {
            answerLabel.setText("Incorrect");
        }
        answertextArea.setText("");
        questionNumber++;
        if(questionNumber == questions.size()){
            JOptionPane.showMessageDialog(null, "Your score for this level was : " + levelScore + " out of 10. \n Your total score is " + triviagui.totalScore, "Scores",JOptionPane.INFORMATION_MESSAGE, pokeballIcon );
                if(difficulty == 3){
                        JOptionPane.showMessageDialog(null, "Good job you beat the game! \n Your total score was " + triviagui.totalScore + " out of 30.", "Thanks for playing!", JOptionPane.INFORMATION_MESSAGE, pokemonredIcon);
                        triviagui.questionFrame.setVisible(false);
                        triviagui.mainFrame.setVisible(true);
                    }
                int leveloptionPane = JOptionPane.showConfirmDialog(null,"Would you like to go on to the next level?" , "Next Level?", JOptionPane.YES_NO_OPTION, levelScore, pokemoneggIcon);
            if(leveloptionPane == JOptionPane.YES_OPTION){
                    difficulty++;
                    triviagui.questionFrame.setVisible(false);
                    triviagui.questionFrame=new QuestionFrame(difficulty);
                    triviagui.questionFrame.setVisible(true);

            }
            if(leveloptionPane == JOptionPane.NO_OPTION){
                triviagui.questionFrame.setVisible(false);
                triviagui.mainFrame.setVisible(true);                    
        }
            return;
        }
        updateQuestionScore();

}  

3 个答案:

答案 0 :(得分:4)

您只想这样做:

if(something happens) {
    return;
} 

答案 1 :(得分:3)

如果你想从方法中跳出来

  

返回;

类似的例子:

    public void myMethod(){
    if(mynumber==5){
       doThis();
        }else{
        return;
        }
      /*
       *do something else  <- this wont be executed if number doesnt equal 5 
       *cause we are already out of method.
       */
}

如果你不想从整个方法中跳出来,那么只能形成一部分例如循环。

break;

示例:

  public void myMethod(String[] stringArr){
   for(String s:stringArr){
       if(s.equals("hello")){
            break; //get me out of this loop now !
       }else{
          s+="alriight";
            }
       }
      }
      doSomethingElse();//this will be executed even if you go thru break; you are still inside method dont forget.You are just out of loop

}

有更好的用途,也许最好的例子,你会理解如何使用它来形成这个:)。

当你使用break或return时。例如,在eclipse中你会看到你实际退出的地方。它将突出显示“}”

答案 2 :(得分:1)

有几种方法可以做到这一点:

您可以从方法中return

您可以break退出循环或continue开始循环的下一次迭代。

如果第一部分没有执行,你可以使用'else'来执行其他代码。

您可以设置一个布尔标志变量,然后检查代码中的其他位置。

根据您尝试做的事情,这些有时是最好的方式,有时候不是最好的方式。