“不兼容的类型。在交换机上找到:int必需:布尔值”

时间:2016-06-10 14:41:51

标签: java android

我创建了一个switch,其中包含int,然后为其指定了一些case

我遇到的问题是,当我输入int值时,我收到错误Incompatible types. Found: int, Required: Boolean。为什么会这样? switch需要Boolean吗?如果是这样,我该如何调整以下代码?

Random generatori4 = new Random();
                int ii4 = generatori4.nextInt(16) + 1;

                switch (ii4) {
                    case ( ii4 == 1 ):
                        pregunta.setText(Europa33);
                        break;
                    case ( ii4 == 2 ):
                        pregunta.setText(Europa34);
                        break;
                    case ( ii4 == 3 ):
                        pregunta.setText(Europa35);
                        break;
                    case ( ii4 == 4 ):
                        pregunta.setText(Europa36);
                        break;
                    case ( ii4 == 5 ):
                        pregunta.setText(Europa37);
                        break;
                    case ( ii4 == 6 ):
                        pregunta.setText(Europa38);
                        break;
                    case ( ii4 == 7 ):
                        pregunta.setText(Europa39);
                        break;
                    case ( ii4 == 8 ):
                        pregunta.setText(Europa40);
                        break;
                    case ( ii4 == 9 ):
                        pregunta.setText(Europa41);
                        break;
                    case ( ii4 == 10 ):
                        pregunta.setText(Europa42);
                        break;
                    case ( ii4 == 11 ):
                        pregunta.setText(Europa43);
                        break;
                    case ( ii4 == 12 ):
                        pregunta.setText(Europa44);
                        break;
                    case ( ii4 == 13 ) :
                        pregunta.setText(Europa45);
                        break;
                    case ( ii4 == 14 ):
                        pregunta.setText(Europa46);
                        break;
                    case ( ii4 == 15 ):
                        pregunta.setText(Europa47);
                        break;
                    case ( ii4 == 16 ):
                        pregunta.setText(Europa48);
                        break;
                }

1 个答案:

答案 0 :(得分:4)

问题

与错误一样,Python希望在switchcase语句中看到匹配的类型。但事实并非如此。为什么?因为switch (ii4)表示“根据ii4的价值做某事,我上面告诉你的是int。”但是您的案例陈述包含ii4 == 1之类的等同,即Boolean。 Etvoilà,这是你的错误。

解决方案

case中删除等值。您已经指定要使用switch (ii4)查看变量的值,因此您无需说ii4 == x。您只需要说x

所以,例如,改变

case( ii4 == 1 ):

case 1:

您可能需要阅读the tutorial on switch statements