有 Java 编程相关的问题?

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

java有条件地添加额外的else if语句

以下是从我的应用程序(游戏)的每个级别调用的

伪代码示例

public void checkCollisions(){

    if (someCondition)
        do something

    else if (someCondition2)
        do something2

    else if (someCondition3)
        do something3

}

这就是所谓的:

mainGame.checkCollisions();

但是,在选定的级别中,我需要添加一个附加条件,而不是像

 public void checkCollisions2(){

    if (someCondition)
        do something

    else if (someCondition2)
        do something2

    else if (someCondition3)
        do something3

    else if (someCondition4)
        do something4

}

然后像

mainGame.checkCollisions2();

我需要找到一种更有效的方法(我肯定有一种)我能想到的唯一方法是引入一个布尔值,然后根据布尔值的大小执行第四个条件(或不执行),但这似乎也不是一个很好的方法(比如,如果我想在将来添加更多的条件)

这必须是一个“else-if”语句,所以我不能将其放入一个单独的方法中,除了原始方法之外,我还可以调用该方法

如有选择,将不胜感激


共 (1) 个答案

  1. # 1 楼答案

    checkCollisions返回一个boolean,指示它是否“做了某事”

    public boolean checkCollisions(){
        boolean didSomething = false;
        if (someCondition) {
           doSomething();
           didSomething = true;
        }
        else if (condition2) {
           doSomething2();
           didSomething = true;
        } 
        else if (condition3){
           doSomething3();
           didSomething = true;
        }
        return didSomething;
    }
    

    然后,checkCollisions2可以调用checkCollisions并检查它是否做了什么。然后你的else if就可以正常工作了:

    public void checkCollisions2(){
        if (checkCollisions()) {
           // Yes, something was done!
        }
        else if (condition4) {
           doSomething4();
        }
    }
    

    或更短:

    public void checkCollisions2(){
        if (!checkCollisions() && condition4) {
           doSomething4();
        }
    }