[英]How to change this code from switch case to if else?
如何使用 if-else 編寫此代碼? 我想知道這兩種方法的區別。 謝謝
switch (status) {
case AIRCRAFT_CARRIER_HIT:
if (this.getFleet().updateFleet(ShipType.ST_AIRCRAFT_CARRIER))
result[1] = "a";
break;
case BATTLESHIP_HIT:
if (this.getFleet().updateFleet(ShipType.ST_BATTLESHIP))
result[1] = "a";
break;
case CRUISER_HIT:
if (this.getFleet().updateFleet(ShipType.ST_CRUISER))
result[1] = "a";
break;
case DESTROYER_HIT:
if (this.getFleet().updateFleet(ShipType.ST_DESTROYER))
result[1] = "a";
break;
case SUB_HIT:
if (this.getFleet().updateFleet(ShipType.ST_SUB))
result[1] = "a";
break;
default:
result[1] = null;
在 if 語句中,枚舉必須是完整的形式,並且在所有條件中都必須提到與之比較的變量。 我不知道枚舉的名稱,但我猜它是狀態。 在那種情況下,你會寫
if (status == Status.AIRCRAFT_CARRIER_HIT) {
if (this.getFleet().updateFleet(ShipType.ST_AIRCRAFT_CARRIER)) {
result[1] = "a";
}
} else if (status == Status.BATTLESHIP_HIT) {
// etc.
} else {
result[1] = null;
}
您的 switch 語句可以用 if/else 編寫如下(假設變量AIRCRAFT_CARRIER_HIT
等是最終的並在編譯時分配了一個值,例如final int AIRCRAFT_CARRIER_HIT = 3
:
if (status == AIRCRAFT_CARRIER_HIT ) {
...
}
else if (status == BATTLESHIP_HIT) {
...
}
…
…
else {
// default case
}
對於每種方法的差異和優點/缺點,您可以在此處查看例如
if-else 和 switch case 之間的區別在於,在 java 中使用 switch 來比較特定變量的不同值(case),而 if-else 用於根據您定義的邏輯控制執行流程。 另一種看待它的方式是 if-else 語句根據 if 語句中表達式的評估來選擇語句的執行。 開關通常根據鍵盤命令選擇語句的執行。 當您嘗試遵循邏輯時,超過三個嵌套的 if/else 語句開始變得混亂。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.