有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

开关上的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) 个答案

  1. # 1 楼答案

    问题

    正如错误所说,Python希望在switchcase语句中看到匹配的类型。但事实并非如此,为什么?因为switch (ii4)的意思是,“根据ii4的值做一些事情,我上面告诉过你的是int。”但是您的case语句包含类似ii4 == 1的等式,这是一个Boolean。瞧,这是你的错误

    解决方案

    case中删除等式。您已经指定要用switch (ii4)查看变量的值,所以不需要说ii4 == x。你只需要说x

    例如,改变

    case( ii4 == 1 ):
    

    case 1:
    

    你可能想读the tutorial on ^{} statements