Thông thường khi tôi nghe về câu lệnh chuyển đổi, nó sẽ tắt như một cách để thay thế lâu nếu ... chuỗi khác. Nhưng có vẻ như khi tôi sử dụng câu lệnh chuyển đổi, tôi đang viết thêm mã mà tôi sẽ chỉ viết nếu ... khác. Bạn cũng có các vấn đề khác như giữ tất cả các biến cho tất cả các cuộc gọi trong cùng một phạm vi .
Đây là một số mã đại diện cho luồng tôi thường viết ( nhờ diam )
String comment; // The generated insult.
int which = (int)(Math.random() * 3); // Result is 0, 1, or 2.
if (which == 0) {
comment = "You look so much better than usual.";
} else if (which == 1) {
comment = "Your work is up to its usual standards.";
} else if (which == 2) {
comment = "You're quite competent for so little experience.";
} else {
comment = "Oops -- something is wrong with this code.";
}
Sau đó, họ muốn tôi thay thế bằng cái này:
String comment; // The generated insult.
int which = (int)(Math.random() * 3); // Result is 0, 1, or 2.
switch (which) {
case 0:
comment = "You look so much better than usual.";
break;
case 1:
comment = "Your work is up to its usual standards.";
break;
case 2:
comment = "You're quite competent for so little experience.";
break;
default:
comment = "Oops -- something is wrong with this code.";
}
Có vẻ như nhiều mã hơn trong một cú pháp khó xử hơn nhiều. Nhưng có thực sự có lợi thế khi sử dụng câu lệnh switch?