我创建了一个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;
}
答案 0 :(得分:4)
与错误一样,Python希望在switch
和case
语句中看到匹配的类型。但事实并非如此。为什么?因为switch (ii4)
表示“根据ii4
的价值做某事,我上面告诉你的是int
。”但是您的案例陈述包含ii4 == 1
之类的等同,即Boolean
。 Etvoilà,这是你的错误。
从case
中删除等值。您已经指定要使用switch (ii4)
查看变量的值,因此您无需说ii4 == x
。您只需要说x
。
所以,例如,改变
case( ii4 == 1 ):
到
case 1: