我的程序由一个具有以下内容的Jframe组成:
我的编程是一个简单的数学游戏,可以帮助用户开发它们的乘法表。在第一帧中只有六个乘法表(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;
}
程序崩溃了。第一个或第二个答案没有标记。
答案 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; }
你可能会做得更漂亮,但这会奏效。