tôi thích sử dụng một bản đồ để một công tắc trong hầu hết các trường hợp.
if (actionMap.contains(choice)) {
Action a = actionMap.get(choice);
a.execute();
} else {
//do something else
}
Nhưng trong trường hợp lựa chọn quá phức tạp để chuyển sang bản đồ hoặc khi nhiều hành động có thể được thực hiện chuyển đổi thì tốt hơn.
switch (choice) {
case 1: actionOne(); break;
case 2: if(actionOne()) {actionTwo()}; break;
case 3: if(!actionOne() && (actionTwo() > 1)) {actionThree()}; result = 7;break;
default: result = actionTwo();
}
Đáng buồn thay, đôi khi yêu cầu phức tạp. Chuyển đổi rất hữu ích trong những trường hợp đó là phiên bản đơn giản của lồng nhau if/else constrcts.
Xem http://stackoverflow.com/questions/2103080/when-to-use-a-switch-statement-in-java, đặc trưng cho Java, nhưng nhiều nguyên tắc áp dụng ngôn ngữ-agnostically. –
Chúng tôi đã lắp đặt đèn tín hiệu cho bạn để bạn có thể bật đèn và tắt đèn, không phải vì vậy bạn có thể ném những con sóng sáng! –
http://stackoverflow.com/questions/449273/why-the-switch-statement-and-not-if-else-closed, http://stackoverflow.com/questions/97987/switch-vs-if-else , http://stackoverflow.com/questions/395618/if-else-vs-switch – Nope