Greenfoot/Java-不兼容类型:无法将boolean转换为int

Greenfoot/Java-不兼容类型:无法将boolean转换为int,java,arrays,greenfoot,Java,Arrays,Greenfoot,这里有一个新用户。。。我觉得我的代码错了 我想寻求帮助,因为我对绿足的项目还比较陌生。目前的问题如问题中所述:在编译代码时,我收到了一个“不兼容类型”错误,无论我做了什么修改,我似乎都无法修复它。代码中存在问题的具体部分如下所示: public void answerValidation() { int ansCorrect = 0; int ansIncorrect = 0; for(int i = 0;

这里有一个新用户。。。我觉得我的代码错了

我想寻求帮助,因为我对绿足的项目还比较陌生。目前的问题如问题中所述:在编译代码时,我收到了一个“不兼容类型”错误,无论我做了什么修改,我似乎都无法修复它。代码中存在问题的具体部分如下所示:

        public void answerValidation()
      {
          int ansCorrect = 0;
          int ansIncorrect = 0;

          for(int i = 0; i <= 10; i++)
          {
              answerArray[0] = array1[0] * array2[0];
              if(answer != answerArray[0])
              {
                  ansIncorrect = ansIncorrect + 1;
                  JOptionPane.showMessageDialog(null, array1[0] + "*" + array2[0] + "=" + answerArray[0]);
              }
              else
              {
                  ansCorrect = ansCorrect + 1;
              }
          }

      switch(ansCorrect)
      {
          case 10:  JOptionPane.showMessageDialog(null, "Wow! You got all the questions right!");
                    break;

          case ansCorrect>=8 && ansCorrect < 9:    JOptionPane.showMessageDialog(null, "You scored" + ansCorrect + "out of 10. 80%-90% scored.");
                    break;

          case ansCorrect >=6 && ansCorrect < 7:   JOptionPane.showMessageDialog(null, "You scored" + ansCorrect + "out of 10. Keep practicing in Lv2 to improve.");
                    break;

          case ansCorrect == 0 && ansCorrect < 6:   JOptionPane.showMessageDialog(null, "You scored" + ansCorrect + "out of 10. Keep practicing in Lv1 to improve.");
                    break;
      }

}
public void answerValidation()
{
int=0;
int=0;
对于(inti=0;i=8&&ansCorrect<9:JOptionPane.showMessageDialog(null,“您在10.80%-90%的分数中得分”+ansCorrect+);
打破
case ansCorrect>=6&&ansCorrect<7:JOptionPane.showMessageDialog(空,“你在10分中得分为“+ansCorrect+”。继续在2级练习以提高。”);
打破
case-ansCorrect==0&&ansCorrect<6:JOptionPane.showMessageDialog(null,“你在10分中得分为“+ansCorrect+”。继续在1级练习以提高。”);
打破
}
}
编译错误表明它位于显示“&&ansCorrect<9”的位置,尽管我不知道如何修复它


欢迎任何修改/请求查看我的代码,非常感谢那些提供帮助的人!

您不能这样使用
case
。这不是编写
if
子句的替代方法,就像您所想的那样。

您不能在
case:
中使用布尔表达式。相反,您可以执行以下操作:

case ansCorrect>=8 && ansCorrect < 9: 
 if(ansCorrect>=8 && ansCorrect < 9){
    JOptionPane.showMessageDialog(null, "You scored" + ansCorrect + "out of 10. 80%-90% scored.");
    }
if(ansCorrect>=8&&ansCorrect<9){
showMessageDialog(null,“在10.80%-90%的得分中,您得分为“+ansCorrect+”);
}
另外,作为一个快速建议,这:
ansCorrect=ansCorrect+1
可以简化为
ansCorrect++


编辑:还要记住,虽然多个
案例
切换可能会解决问题,但如果您在某个时候切换到
双倍
,例如
5.15
而不是
5

哦..我一直认为“案例”声明是为了审查多个结果。@Blitz是的,但多个结果是
开关(foo)
部分,而不是
案例
,它需要一个选项(
int
,或者现在
字符串
,在字节码中变为int)。有趣的是,我不知道您可以在不输入for循环的情况下增加/减少值。必须更多地学习Java。如果您想了解有关Java递增/递减的更多信息,我建议您阅读一些解释得很好的教程-如本教程::)此外,我可以看到您对SO还不熟悉,作为一个友好的提醒——当你问了一个问题15分钟后,有答案可以解决你的问题时——确保你选择其中一个,这样问题看起来就解决了:)有趣!我从来不知道你能执行这样的案子@闪电战是的。关于交换机,您需要了解的事情很少:
 if(ansCorrect>=8 && ansCorrect < 9){
    JOptionPane.showMessageDialog(null, "You scored" + ansCorrect + "out of 10. 80%-90% scored.");
    }