使用if / else语句检查多个答案?

时间:2015-09-26 17:15:36

标签: java if-statement netbeans-8

一些细节:

  • 我使用的是Netbeans 8.0
  • 提供的所有代码均来自我主程序包中JFrame的按钮。

我的程序应该做什么:

我的程序由一个具有以下内容的Jframe组成:

  • 用户必须输入答案的6个TextField
  • 6 Lables向用户显示问题所在。
  • 1处理所有内容的按钮。
  • 1个TextField作为最终标记。

我的编程是一个简单的数学游戏,可以帮助用户开发它们的乘法表。在第一帧中只有六个乘法表(1次1,1次,2次等)。

所以我想开发if else语句来检查所有答案是否正确并将它们添加到我的最终得分中。

到目前为止,这是我的按钮代码:

//Declaring my counter
    int TotalCorrect = 0;

    //Declaring my Correct answers
    //To compare to User answers

    int Answer1     =1;
    int Answer2     =2;
    int Answer3     =3;
    int Answer4     =4;
    int Answer5     =5;
    int Answer6     =6;


    // Converting TextField answers to int
    int ConvertedAnswer1 = Integer.parseInt(txfUserAnswer1.getText());
    int ConvertedAnswer2 = Integer.parseInt(txfUserAnswer2.getText());


    if (ConvertedAnswer1 == Answer1)
    {
    //Adding +1 for total correct
    TotalCorrect = + 1;

    }
    else
    {

    TotalCorrect = +0;    

    }

    //Converting int to string

    String FinMark = Integer.toString(TotalCorrect);

    // Printing Users Mark

    txfOutput.setText(FinMark);

问题是我直接在else下使用此代码:

if (ConvertedAnswer2 == Answer2)
    {
    //Adding +1 for total correct
    TotalCorrect = + 1;

    }
    else
    {

    TotalCorrect = +0;    

    }

程序崩溃了。第一个或第二个答案没有标记。

2 个答案:

答案 0 :(得分:0)

这行代码会导致问题,因为它是一个简单的赋值,而不是你想要的增量:

  • TotalCorrect = + 1;应为TotalCorrect += 1;

TotalCorrect添加0并没有任何意义。

使用循环和数组可以更有效地解决这个问题:

int[] answers = new int[]{1 , 2 , 3 , 4 , 5 , 6};;
int[] input = new int[6];
int correct = 0;

for(int i = 0 ; i < 6 ; i++)
    input[i] = Integer.parseInt(txtfUserAnswer[i].getText());
    if(input[i] == answers[i])
        correct += 1;

答案 1 :(得分:0)

首先= +不正确,你应该使用+ =将值添加到TotalCorrect,第二次添加0什么也不做,那为什么要这样做呢?

那么为什么不这样做:

if (ConvertedAnswer1 == Answer1){ TotalCorrect += 1; }
if (ConvertedAnswer2 == Answer2){ TotalCorrect += 1; }
if (ConvertedAnswer3 == Answer3){ TotalCorrect += 1; }
if (ConvertedAnswer4 == Answer4){ TotalCorrect += 1; }

你可能会做得更漂亮,但这会奏效。