While 循环卡住的嵌套 if 语句

Nested if statement with While loop stuck

该代码用于多项选择题。如果答案不正确,用户应该尝试直到找到正确答案。答对了就没问题,答错了就卡住了,一直说“你的答案不正确!”。我该怎么办?

import java.util.*;

public class Question {

    public static void main(String[] args) {
  
        System.out.println();
        System.out.println("Question 1");
        System.out.println();
        System.out.println("What is 2+2?");
        System.out.println("A. 2");
        System.out.println("B. 4");
        System.out.println("C. 6");
        System.out.println("D. 8");

        Scanner input = new Scanner(System.in);
        char getAnswerFromUser = input.next().charAt(0);
        char answer = 'B';

        boolean isAnswerTrue = false;

     
        while(!isAnswerTrue) {
            if(getAnswerFromUser == answer ) {
                System.out.println("Your answer is correct!");
                    isAnswerTrue = true;
            } else{
                System.out.println("Your answer is incorrect!");
                isAnswerTrue = false;
            }       
        }
    }   
}

您实际上并没有从循环中的用户那里得到新的答案。您只会在定义变量 getAnswerFromUser 的行中获得它一次。你需要真正得到一个新的答案。我建议将其放入一个单独的方法中,以保持该步骤与您使用该答案的步骤保持一致。