开关上的java“不兼容类型。找到:int-Required:boolean”
我创建了一个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 楼答案
问题
正如错误所说,Python希望在
switch
和case
语句中看到匹配的类型。但事实并非如此,为什么?因为switch (ii4)
的意思是,“根据ii4
的值做一些事情,我上面告诉过你的是int
。”但是您的case语句包含类似ii4 == 1
的等式,这是一个Boolean
。瞧,这是你的错误解决方案
从
case
中删除等式。您已经指定要用switch (ii4)
查看变量的值,所以不需要说ii4 == x
。你只需要说x
例如,改变
到
你可能想读the tutorial on ^{} statements