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

Using if/ else statement to check multiple answers?

一些细节:

我的程序应该做什么:

我的程序由一个 Jframe 组成,它具有:

My Programming 是一款简单的数学游戏,可帮助用户开发乘法tables.In第一帧只有六个乘法表(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;    
      
    }

程序崩溃。不是第一个或第二个答案被标记。

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

  • 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;

首先= +是不正确的,你应该使用+=将值添加到TotalCorrect,其次添加0没有任何作用,那么为什么要这样做呢?

那么为什么不这样做:

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

您可能会做得更漂亮,但这会起作用。