gpt4 book ai didi

java - if/elseif 语句的输出不正确

转载 作者:行者123 更新时间:2023-12-02 12:53:02 27 4
gpt4 key购买 nike

在我的提交按钮中,if/else if 语句对于我的正确/不正确输出无法正常工作。

例如问题:维多利亚在哪里?答案:不列颠哥伦比亚省 - 不正确。但是,如果我回答:艾伯塔省或不列颠哥伦比亚省,那就是正确的。我不明白这个错误。如果我写的省份不完整,就会出现错误,如果省份写错了,则不会出现错误。

我该如何解决这个问题?

这是我的代码:

提交按钮代码

private void submitButtonActionPerformed(java.awt.event.ActionEvent evt) {                                             

outputDegree.setText(null);
if (inputAnswer.getText().equals(provinces.get(0))) {
outputDegree.setText("Correct");
nextQuestion.setEnabled(true);

}
else if (inputAnswer.getText().equals(provinces.get(1))) {
outputDegree.setText("Correct");
nextQuestion.setEnabled(true);
}
else if (inputAnswer.getText().equals(provinces.get(2))) {
outputDegree.setText("Correct");
nextQuestion.setEnabled(true);
}
else if (inputAnswer.getText().equals(provinces.get(3))) {
outputDegree.setText("Correct");
nextQuestion.setEnabled(true);
}
else if (inputAnswer.getText().equals(provinces.get(4))) {
outputDegree.setText("Correct");
nextQuestion.setEnabled(true);
}
else if (inputAnswer.getText().equals(provinces.get(5))) {
outputDegree.setText("Correct");
nextQuestion.setEnabled(true);
}
else if (inputAnswer.getText().equals(provinces.get(6))) {
outputDegree.setText("Correct");
nextQuestion.setEnabled(true);
}
else if (inputAnswer.getText().equals(provinces.get(7))) {
outputDegree.setText("Correct");
nextQuestion.setEnabled(true);
}
else if (inputAnswer.getText().equals(provinces.get(8))) {
outputDegree.setText("Correct");
nextQuestion.setEnabled(true);
}
else if (inputAnswer.getText().equals(provinces.get(9))) {
outputDegree.setText("Correct");
nextQuestion.setEnabled(true);
}
else if (inputAnswer.getText().equals(provinces.get(10))) {
outputDegree.setText("Correct");
nextQuestion.setEnabled(true);
}
else if (inputAnswer.getText().equals(provinces.get(11))) {
outputDegree.setText("Correct");
nextQuestion.setEnabled(true);
}
else if (inputAnswer.getText().equals(provinces.get(12))) {
outputDegree.setText("Correct");
nextQuestion.setEnabled(true);
}
else {
outputDegree.setText("Incorrect, try again!!");
nextQuestion.setEnabled(false);
}

显示答案和可能的答案(1 个正确,3 个错误)

private void nextQuestionActionPerformed(java.awt.event.ActionEvent evt) {                                             
boolean trueOrFalse;

outputTextQuestion.setText(null);
outputTextQuestion.setText(setQuestions().toString());
outputAnswers.setText(null);
inputAnswer.setText(null);
outputDegree.setText(null);

clicked++;

int buttonLimit = 4;

if (clicked <= buttonLimit) {


int correctAnswer = -1;

for (int x = 0; x < cities.size(); x++)
{
if (trueOrFalse = outputTextQuestion.getText().contains(cities.get(x)))
{
correctAnswer = x;
break;
}
}
randomAnswers = new ArrayList <Integer>();
Collections.addAll(randomAnswers, correctAnswer);

for (int x=0; x < 3; x++)
{
int r = correctAnswer;
while (randomAnswers.contains(r))
{
r = ((int)(Math.random()*100))%cities.size();

}
Collections.addAll(randomAnswers, r);
}

Collections.shuffle(randomAnswers);
outputAnswers.setText(null);

for (int r=0; r<randomAnswers.size(); r++) {
int hint = randomAnswers.get(r);
outputAnswers.append(provinces.get(hint) + "\n");
}
}

else{
nextQuestion.setEnabled(false);
submitButton.setEnabled(false);
outputTextQuestion.setText("Start new round");
outputDegree.setText(null);


}

我还使用 ArrayList,例如城市、省份、randomAnswers。我只是没有展示我的整个程序,因为它太大了。如果需要的话我可以。

我在 Netbeans 中执行此操作,并且该程序是一个 GUI

提前致谢!!

最佳答案

不知道代码的哪一部分应该执行您期望的操作,以及您期望部分输入匹配的情况,原因如下:

  • 在第一个方法中,您使用equals()。部分匹配永远不会等于全文。

  • 在第二种方法中,您使用的是 contain(),但方向相反:
    getText().contains(cities.get(x))
    部分文本 bert 不包含完整文本 Alberta。这是另一种方式,即 Alberta 包含文本 bert

关于java - if/elseif 语句的输出不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44532407/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com