-1

我是一名初级程序员,我正在尝试编写一个简单的程序,它会提出一个问题,然后以在输入对话框中输入“A”、“B”或“C”的形式提示您对该问题的答案,但没有出现对话框。其他一切似乎都很好。

这是我的代码:

package homework;

import javax.swing.JOptionPane;

public class Quiz {

    public static void main(String[] args) 
    {


    int x = 0;
    String[] quizQuestion = {"What is the color of the sky?", "What is the         
        color of the sea?", "What is the color of the earth?"};
    int score = 0;
    String correct = "You are correct";
    String incorrect = "You are incorrect";
    String playerAnswerString = " ";
    playerAnswerString.toUpperCase();
    char playerAnswer = playerAnswerString.charAt(0);

    JOptionPane.showMessageDialog(null, "Test Your Knowledge!");
    JOptionPane.showMessageDialog(null, "Select an answer to the questions.");
    for(x = 0; x < 3; x++)
    {
        JOptionPane.showMessageDialog(null, quizQuestion[x]);
        while(quizQuestion.equals(0))
        {
            playerAnswerString = JOptionPane.showInputDialog(null, "A = Blue, B = Green, C = Brown");
            if(playerAnswer == 'A')
            {
                JOptionPane.showMessageDialog(null, correct);
                score++;
            }
            else
            {
                JOptionPane.showMessageDialog(null, incorrect);
            }
        }
        while(quizQuestion.equals(1))
        {
            playerAnswerString = JOptionPane.showInputDialog(null, "A = Blue, B = Green, C = Brown");
            if(playerAnswer == 'B')
            {
                JOptionPane.showMessageDialog(null, correct);
                score++;
            }
            else
            {
                JOptionPane.showMessageDialog(null, incorrect);
            }
        }
        while(quizQuestion.equals(2))
        {
            playerAnswerString = JOptionPane.showInputDialog(null, "A = Blue, B = Green, C = Brown");
            if(playerAnswer == 'C')
            {
                JOptionPane.showMessageDialog(null, correct);
                score++;
            }
            else
            {
                JOptionPane.showMessageDialog(null, incorrect);
            }
        }
    }
    JOptionPane.showMessageDialog(null, "You scored " + score + "/3.");


}
}

提前致谢。

为清晰起见进行了编辑。

4

2 回答 2

5
char playerAnswer = playerAnswerString.charAt(0);

在用户在这里选择他的答案后,您必须分配 playerAnswer 的值

playerAnswerString = JOptionPane.showInputDialog(null, "A = Blue, B = Green, C = Brown");

否则变量 playerAnswer 将为空

于 2013-10-25T06:52:02.177 回答
2

做了一些修改,请检查并让我知道代码是否符合您的期望。

 import javax.swing.JOptionPane;

public class Quiz {

    public static void main(String[] args) 
    {


    int x = 0;
    String[] quizQuestion = {"What is the color of the sky?", "What is the       color of the sea?", "What is the color of the earth?"};
    int score = 0;
    String correct = "You are correct";
    String incorrect = "You are incorrect";
    String playerAnswerString = " ";
    playerAnswerString.toUpperCase();
    char playerAnswer = playerAnswerString.charAt(0);

    JOptionPane.showMessageDialog(null, "Test Your Knowledge!");
    JOptionPane.showMessageDialog(null, "Select an answer to the questions.");
    for(x = 0; x < 3; x++)
    {


        JOptionPane.showMessageDialog(null, quizQuestion[x]);
        if(x==0)
        {
            playerAnswerString = JOptionPane.showInputDialog(null, "A = Blue, B = Green, C = Brown");

            System.out.println(playerAnswerString+"   "+playerAnswer);

            if(playerAnswerString.equals("A"))
            {
                JOptionPane.showMessageDialog(null, correct);
                score++;
            }
            else
            {
                JOptionPane.showMessageDialog(null, incorrect);
            }
        }
        if(x==1)
        {
            playerAnswerString = JOptionPane.showInputDialog(null, "A = Blue, B = Green, C = Brown");
            if(playerAnswerString.equals("B"))
            {
                JOptionPane.showMessageDialog(null, correct);
                score++;
            }
            else
            {
                JOptionPane.showMessageDialog(null, incorrect);
            }
        }
        if(x==2)
        {
            playerAnswerString = JOptionPane.showInputDialog(null, "A = Blue, B = Green, C = Brown");
            if(playerAnswerString.equals("C"))
            {
                JOptionPane.showMessageDialog(null, correct);
                score++;
            }
            else
            {
                JOptionPane.showMessageDialog(null, incorrect);
            }
        }
    }
    JOptionPane.showMessageDialog(null, "You scored " + score + "/3.");


}
}
于 2013-10-25T07:01:38.740 回答