Tôi có tuyên bố chuyển đổi khá dài. Một số trường hợp thực sự ngắn và tầm thường. Một vài dài hơn và cần một số các biến mà không bao giờ được sử dụng bất cứ nơi nào khác, như thế này:Bạn có nên định nghĩa một biến trong một khối cục bộ cho một trường hợp của một câu lệnh switch không?
switch (action) {
case kSimpleAction:
// Do something simple
break;
case kComplexAction: {
int specialVariable = 5;
// Do something complex with specialVariable
} break;
}
Việc thay thế sẽ phải khai báo biến trước khi đi sâu vào switch
như thế này:
int specialVariable = 5;
switch (action) {
case kSimpleAction:
// Do something simple
break;
case kComplexAction:
// Do something complex with specialVariable
break;
}
này có thể nhận được khá khó hiểu vì nó không phải là rõ ràng mà case
biến thuộc và nó sử dụng một số bộ nhớ không cần thiết.
Tuy nhiên, tôi chưa bao giờ thấy việc sử dụng này ở bất kỳ nơi nào khác.
Bạn có nghĩ rằng bạn nên khai báo biến cục bộ trong một khối cho một đơn case
?
Mỗi trường hợp có phải là phạm vi không? Tôi hỏi vì một trường hợp không có ý nghĩa gì nếu không có một công tắc, chắc chắn? – gbn
@gbn - bởi chính nó, một 'trường hợp' không tạo ra một phạm vi mới.Mã sẽ cần thêm '{}' để giới thiệu phạm vi mới (như OP làm trong ví dụ đầu tiên của mình). –
có, bạn cần phải tạo ra một "phạm vi" trong trường hợp bạn dự định sử dụng biến trong trường hợp (pun), nơi biến sẽ được sử dụng chỉ trong trường hợp đó. – Max