簡體   English   中英

有條件地添加額外的if語句

[英]Conditionally adding extra else if statements

從我的應用程序的每個級別調用以下內容(游戲)

偽代碼示例

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'語句,所以除了原始方法之外,我不能把它變成一個單獨的方法。

選項將不勝感激

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();
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM