Bản sao có thể xảy ra:
is “else if” faster than “switch() case” ?
What is the relative performance of if/else vs. switch in Java?Trường hợp so với trường hợp khác: Cách nào hiệu quả hơn?
Ive được mã hóa-in-the-chạy một lần nữa .... khi bước gỡ lỗi thông qua một tuyên bố trường hợp nó nhảy tới mục phù hợp với các điều kiện ngay lập tức, tuy nhiên khi cùng một logic được xác định bằng cách sử dụng nếu/else nó bước qua mỗi câu lệnh if cho đến khi nó tìm thấy người chiến thắng. Tuyên bố trường hợp có hiệu quả hơn hay là trình gỡ lỗi của tôi chỉ tối ưu hóa bước qua? (Đừng lo lắng về cú pháp/lỗi, tôi đã gõ vào SO này, không biết nếu nó sẽ biên dịch, nguyên tắc của nó là sau, tôi không muốn làm chúng như là nguyên nhân khiến tôi mơ hồ nhớ điều gì đó về trường hợp sử dụng một bù đắp với ints) Tôi sử dụng C#, nhưng im quan tâm đến một câu trả lời chung trên các ngôn ngữ lập trình.
switch(myObject.GetType()){
case typeof(Car):
//do something
break;
case typeof(Bike):
//do something
break;
case typeof(Unicycle):
//do something
break;
case default:
break;
}
VS
Type myType = myObject.GetType();
if (myType == typeof(Car)){
//do something
}
else if (myType == typeof(Bike)){
//do something
}
else if (myType == typeof(Unicycle)){
//do something
}
else{
}
Điều này thậm chí không * đóng * để trở thành bất khả tri về ngôn ngữ, mọi câu trả lời sẽ được ràng buộc chặt chẽ với một ngôn ngữ cụ thể. – skaffman
chưa kể đến phiên bản trình biên dịch và trình biên dịch cụ thể. –
Nó có thể khác nhau giữa các ngôn ngữ, trình biên dịch và thời gian chạy. Không có cách nào để biết chắc chắn. – FrustratedWithFormsDesigner