使用 if/else 语句检查多个答案?
Using if/ else statement to check multiple answers?
一些细节:
- 我正在使用 Netbeans 8.0
- 提供的所有代码均来自我主包中 JFrame 中的一个按钮。
我的程序应该做什么:
我的程序由一个 Jframe 组成,它具有:
- 6 个用户必须在其中输入答案的文本字段
- 6 个标签向用户显示问题是什么。
- 1 个用于处理所有内容的按钮。
- 1 个 TextField 作为最终标记。
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; }
您可能会做得更漂亮,但这会起作用。
一些细节:
- 我正在使用 Netbeans 8.0
- 提供的所有代码均来自我主包中 JFrame 中的一个按钮。
我的程序应该做什么:
我的程序由一个 Jframe 组成,它具有:
- 6 个用户必须在其中输入答案的文本字段
- 6 个标签向用户显示问题是什么。
- 1 个用于处理所有内容的按钮。
- 1 个 TextField 作为最终标记。
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; }
您可能会做得更漂亮,但这会起作用。