java - 尝试在java中使switch case逻辑正确

标签 java object switch-statement

嗨,我一直在尝试让这个系统根据火力数量来确定发射的子弹数量。

所以我创建了一个 switch 语句,它将允许它采用以前的子弹创建点,并随着火力的增加添加新的点。问题是我不知道如何计算未使用的数字。我尝试使用默认值,但后来我意识到,由于我把它放在顶部,它会经历更高火力的子弹升级,但尚未达到该数字。

有没有办法让它在选择值时执行某些操作? (请记住,我确实希望仍然使用原始的项目符号升级)我能想到的唯一其他方法是嵌套许多不同的 if 或 else 语句。这就是方法吗

我的代码:

    switch(firePower){

    case 30:
        for(int i = -4; i <=4; i++){
            Bullet a = new Bullet((int)playerx,(int)playery+i,-i);
            bullet.add(a);
        }
    case 15:
        for(int i = -2; i <=2; i++){
            Bullet a = new Bullet((int)playerx,(int)playery+i,-i);
            bullet.add(a);
        }

    case 4:
        Bullet h = new Bullet((int)playerx, (int)playery-10, 0);
        Bullet i = new Bullet((int)playerx, (int)playery-12, 0);
        bullet.add(h);
        bullet.add(i);
    case 3:
        Bullet f = new Bullet((int)playerx, (int)playery-6, 0);
        Bullet g = new Bullet((int)playerx, (int)playery-8, 0);
        bullet.add(f);
        bullet.add(g);
    case 2:
        Bullet d = new Bullet((int)playerx, (int)playery+4, 0);
        Bullet e = new Bullet((int)playerx, (int)playery-4, 0);
        bullet.add(d);
        bullet.add(e);
    case 1:
        Bullet b = new Bullet((int)playerx, (int)playery+2, 0);
        Bullet c = new Bullet((int)playerx, (int)playery-2, 0);
        bullet.add(b);
        bullet.add(c);
    case 0:
        Bullet a = new Bullet((int)playerx, (int)playery, 0);
        bullet.add(a);
        break;

    }

最佳答案

您需要添加break;每次之后 case否则它将执行所有操作,直到达到 break; .

case n:
    /* some code */
    break;

顺便说一下,break;当您想在满足退出条件之前强制退出循环时,也可以在循环中使用。

此外,正如 Josh M 提到的,有一个 default: case 选项,如果没有的话,默认情况下可以使用 case: switch 的计算结果为 true .

关于java - 尝试在java中使switch case逻辑正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18797556/

相关文章:

java - DCEVM java 补丁不起作用

java - 无法从 Controller 包类访问 bean 包类

javascript - 发出传递函数返回以扩展对象的问题

php - 使用数组键和数组值的 switch 语句?

javascript - 性能 - 您更喜欢哪个选项?

c++ - "Illegal case"在 c++ 中使用特殊符号以防万一

java - 如何获取 Java BlockingQueue 的空属性,以便将其绑定(bind)到 JavaFX 元素的某些属性?

java - jackson JSON 库中的 ALLOW_UNQUOTED_FIELD_NAMES

java - Blue J,我的 listMembers 方法没有从我的数组列表中打印出正确的数据

javascript - 迭代对象数组并按键返回具有合并数组的新对象的 JavaScript 方法是什么?