Java 如何在不使用嵌套if-else的情况下实现游戏中的机会数

Java 如何在不使用嵌套if-else的情况下实现游戏中的机会数,java,Java,我正在开发一个学校作业java多选游戏,在这个游戏中,你必须给用户一些正确回答的机会 我的问题是,如果不在游戏中使用一组嵌套的if-else if,那么最简单的方法是什么才能让游戏正常工作,以及它应该如何工作 或者,如果答案数量固定,则可以使用数组 您可以做的一件事是编写一个while循环,如下所示: int tries = 0; boolean isCorrect = false; while(tries++ < 10 || !isCorrect) { System.out.pr

我正在开发一个学校作业java多选游戏,在这个游戏中,你必须给用户一些正确回答的机会

我的问题是,如果不在游戏中使用一组嵌套的if-else if,那么最简单的方法是什么才能让游戏正常工作,以及它应该如何工作


或者,如果答案数量固定,则可以使用数组

您可以做的一件事是编写一个while循环,如下所示:

int tries = 0;
boolean isCorrect = false;
while(tries++ < 10 || !isCorrect) {
    System.out.println("Chance #" + tries);

    final Scanner scanner = new Scanner(System.in);
    isCorrect = evaluateAnswer(scanner.nextLine());
}
int=0;
布尔值isCorrect=false;
while(尝试+++<10||!isCorrect){
System.out.println(“Chance#”+tries);
最终扫描仪=新扫描仪(System.in);
isCorrect=evaluateAnswer(scanner.nextLine());
}

这样,尝试次数从1开始,而不是从0开始。但是,如果您想添加多个问题,则需要将其循环。

切换案例陈述将是最合适的方法

我从Oracle文档()中选取了以下示例:

注意:曾经有一段时间switch语句无法处理字符串。但JDK1.7中的情况发生了变化

编辑: 当然,switch case语句必须由一个循环包围。为此,您有几个选项


  • 对于循环(int i=0;i您可以使用WHILE循环:

    int attemps = 0;
    boolean correct = false;
    do{
        correct = evalTheAnswers();// évaluate the answers
        attemps++; 
    }while(!correct || attemps < attempsLimit);
    
    int attemps=0;
    布尔正确=错误;
    做{
    correct=evalTheAnswers();//评估答案
    attemps++;
    }而(!correct | | attemps
    我建议通过微程序和ikken组合答案,即一个while循环,检查尝试次数和答案是否正确。
    执行while
    可能是一个好主意,这取决于您的程序的工作方式。

    我的意思是取决于其余代码的外观。是否使用
    while或
    边做边做
    int attemps = 0;
    boolean correct = false;
    do{
        correct = evalTheAnswers();// évaluate the answers
        attemps++; 
    }while(!correct || attemps < attempsLimit);