Tôi gặp sự cố khi sử dụng câu lệnh chuyển đổi khi tôi cố xử lý một tình huống đặc biệt. Ví dụ, Tôi có 3 trường hợp: A, B, C.Tuyên bố chuyển đổi Java
- cho A, tôi muốn làm statement_1 và statement_3.
- cho B, tôi muốn thực hiện statement_2 và statement_3.
- cho C, tôi muốn làm gì
nếu tôi sử dụng lệnh if-else, nó sẽ trông giống như sau:
if (not C){
do statement_3
if B
do statement 2
else if A
do statement 1
}
Nếu tôi muốn sử dụng câu lệnh switch để làm tương tự tôi gặp rắc rối.
switch (variable){
case A: do statement_1
case B: do statement_2
// how to do statement 3 here?
}
Tôi đang cố gắng tránh các mã trùng lặp. Vì vậy, tôi nghĩ rằng làm thế nào để làm cho các mã đơn giản nhất có thể.
UPDATE 1:
để làm cho mã của tôi/câu hỏi rõ ràng hơn, tôi chỉ muốn làm cho mã của tôi đơn giản/rõ ràng như tôi có thể, đó là lý do tại sao tôi muốn sử dụng câu lệnh switch thay vì nếu có. Ngoài ra, tôi nghe nói rằng tuyên bố chuyển đổi thường là nhanh hơn so với if-else. (Tôi không chắc chắn 100%).
Tôi muốn sử dụng hộp chuyển đổi vì Trường hợp A, B, C là loại enum. họ không thay đổi. Xin lỗi về sự nhầm lẫn.
mỗi câu lệnh có hơn 10 dòng mã. Đó là lý do tại sao tôi không muốn làm các việc sau:
switch (enum variable) { case A: statement1 statement3 break; case B: statement2 statement3 break;
}
Mã này sẽ không hoạt động, vì Java 6 trở lên dự kiến giá trị của loại nguyên thủy. Java 7 có thể xử lý điều đó bằng Strings. – reporter
chuyển đổi là không tốt - bạn không thể bỏ qua các trường hợp, đó là những gì bạn phải làm để tránh mã hóa cuộc gọi đến statement_3 hai lần – Bohemian
có gì sai với 'if'? Nếu một công tắc không phải là công cụ thích hợp, đừng sử dụng nó. Hầu hết thời gian, nó không phải là công cụ phù hợp. –