[英]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.