Miễn là tôi có thể nhớ, tôi đã tránh sử dụng thông báo chuyển đổi. Trên thực tế, tôi không thể nhớ nó đã bao giờ đi vào ý thức của tôi như một cách khả thi để làm mọi việc vì nó đã được tôi ghi nhớ từ rất sớm rằng nó chỉ là một lỗi trong câu lệnh chuyển đổi. Tuy nhiên, hôm nay tôi xem qua một số mã sử dụng nó theo thiết kế, khiến tôi ngay lập tức tự hỏi mọi người trong cộng đồng nghĩ gì về câu lệnh chuyển đổi.
Đó có phải là thứ mà một ngôn ngữ lập trình không nên cho phép một cách rõ ràng (như C #, mặc dù nó cung cấp một giải pháp thay thế) hay nó là một tính năng của bất kỳ ngôn ngữ nào đủ mạnh để nằm trong tay của lập trình viên?
Chỉnh sửa: Tôi không đủ cụ thể với những gì tôi muốn nói về việc vượt qua. Tôi sử dụng loại này rất nhiều:
switch(m_loadAnimSubCt){
case 0:
case 1:
// Do something
break;
case 2:
case 3:
case 4:
// Do something
break;
}
Tuy nhiên, tôi lo ngại về một thứ như thế này.
switch(m_loadAnimSubCt){
case 0:
case 1:
// Do something, but fall through to the other cases
// after doing it.
case 2:
case 3:
case 4:
// Do something else.
break;
}
Bằng cách này bất cứ khi nào trường hợp là 0, 1, nó sẽ thực hiện mọi thứ trong câu lệnh switch. Tôi đã thấy điều này theo thiết kế và tôi chỉ không biết liệu tôi có đồng ý rằng các câu lệnh switch nên được sử dụng theo cách này hay không. Tôi nghĩ ví dụ mã đầu tiên là một ví dụ rất hữu ích và an toàn. Điều thứ hai có vẻ nguy hiểm.