java - Switch 执行所有的 case 语句

标签 java for-loop case

有人能解释一下为什么我的循环是从 0 到 7 吗?我只需要获取前 3 种情况,但程序会遍历所有。代码在 show() 方法中。

for(brojac=0; brojac<3; brojac++){

    switch(brojac){
    case 1:
        figura1.setPosition(pomx[random], pomy[random]);
        stage.addActor(figura1);
        System.out.println("1");
    case 2:
        figura2.setPosition(pomx[random], pomy[random]);
        stage.addActor(figura2);
        System.out.println("2");
    case 3:
        figura3.setPosition(pomx[random], pomy[random]);
        stage.addActor(figura3);
        System.out.println("3");
    case 4:
        figura4.setPosition(pomx[random], pomy[random]);
        stage.addActor(figura4);
        System.out.println("4");
    case 5:
        figura5.setPosition(pomx[random], pomy[random]);
        stage.addActor(figura5);
        System.out.println("5");
    case 6:
        figura6.setPosition(pomx[random], pomy[random]);
        stage.addActor(figura6);
        System.out.println("6");
    case 7:
        figura7.setPosition(pomx[random], pomy[random]);
        stage.addActor(figura7);
        System.out.println("7");

    }
}

最佳答案

因为缺少中断。在每种情况下你都需要 break 关键字。有关详细说明,请参阅 switch statement java tutorial

例如

for(brojac=0; brojac<3; brojac++){

switch(brojac){
case 1:
    figura1.setPosition(pomx[random], pomy[random]);
    stage.addActor(figura1);
    System.out.println("1");
    break; /// Break here

case 2:
    figura2.setPosition(pomx[random], pomy[random]);
    stage.addActor(figura2);
    System.out.println("2");
    break; /// Break here
case 3:
    figura3.setPosition(pomx[random], pomy[random]);
    stage.addActor(figura3);
    System.out.println("3");
    break; /// Break here
case 4:
    figura4.setPosition(pomx[random], pomy[random]);
    stage.addActor(figura4);
    System.out.println("4");
    break; /// Break here
case 5:
    figura5.setPosition(pomx[random], pomy[random]);
    stage.addActor(figura5);
    System.out.println("5");
    break; /// Break here
case 6:
    figura6.setPosition(pomx[random], pomy[random]);
    stage.addActor(figura6);
    System.out.println("6");
    break; /// Break here
case 7:
    figura7.setPosition(pomx[random], pomy[random]);
    stage.addActor(figura7);
    System.out.println("7");
    break; /// Break here
}
}

否则,如果上述情况之一被评估为真,则将执行其他情况。

关于java - Switch 执行所有的 case 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22012061/

相关文章:

java - overflowToDisk 如何在 ehcache 中工作?

python - 数组中的 lambda 找不到变量值

javascript - Ajax 循环调用

mysql - mysql 中 WHERE 中的 CASE

java - 跳过 Android 布局 xml 资源

java - 当 XML 文件重复时,到达我想要的标签的最佳方法是什么?

mysql - MariaDB 循环的隐式游标似乎不起作用

sql - 选择 ColA=ColB 的行,并添加一个新列,告知 ColA 中的原始数据是否重复

php - 对案例使用变量,对开关使用函数?

java - 在 Eclipse 中使用 java 制作复选框和数字选择器的数组