Trường hợp chuyển đổi có nhanh hơn JavaScript không?

Trong cuộc sống hàng ngày, chúng ta đưa ra nhiều quyết định, từ quyết định mặc gì cho đến quyết định ăn gì. Đôi khi hành động của bạn phụ thuộc vào quyết định của bạn. Ví dụ, nếu bạn đã đánh răng, bạn có thể ăn, nếu không bạn sẽ phải đánh răng trước. Trong mã hóa, chúng tôi sử dụng câu điều kiện cho mục đích này. Câu lệnh có điều kiện là if, other, other-if và switch. Khi bắt đầu viết mã, if-else và switch là một trong những điều đầu tiên bạn học. Do đó, điều quan trọng là phải hiểu những lợi ích và sự khác biệt giữa mỗi. Đây là những gì chúng tôi sẽ đề cập trong bài viết này

Phạm vi

  • Bài viết này giải thích if-else và switch là gì
  • Nó cũng giải thích những điểm tương đồng và khác biệt giữa hai người họ

Câu lệnh if-else là gì?

Trong cuộc sống hàng ngày, chúng ta luôn quyết định mọi việc bằng cách sử dụng if-else. Ví dụ: hãy xem xét một tình huống mà chúng ta cần suy nghĩ về số ngày có mặt trong mỗi tháng. Nếu tháng đó là tháng 1, tháng 3, tháng 5, tháng 7, tháng 8, tháng 10 và tháng 12 thì đáp án là 31. Nếu tháng là tháng 4, tháng 6, tháng 9 và tháng 11, câu trả lời là 30. Nếu tháng đó là năm nhuận, tháng 2, đáp án là 29. Nếu không phải là tháng 2 năm nhuận thì đáp số là 28. Câu lệnh if-else cho phép lập trình viên thực hiện chính xác điều đó với mã của họ. Kiểm tra điều kiện được thực hiện. Nếu đúng, quyền kiểm soát sẽ chuyển đến một khối mã và nếu không, thì quyền kiểm soát sẽ chuyển đến một khối mã khác được xác định trong phần khác. Câu lệnh khác có thể là một câu lệnh đơn lẻ hoặc thậm chí có thể là một khối các câu lệnh

Cú pháp câu lệnh if-else

if (condition) {
    // Block of code if condition true
} else {
    // Block of code is condition false
}

Ví dụ về câu lệnh if-else

if (month == 'January' || month == 'March' || month == 'May' || month == 'July' || month == 'August' || month == 'October' || month == 'December') {
    cout << '31';
} else if (month == 'February') {
    cout << '28 or 29';
} else {
    cout << '30';
}

Câu lệnh switch là gì?

Trong câu lệnh switch, chúng ta so sánh giá trị điều kiện với nhiều trường hợp. Khi có sự trùng khớp với bất kỳ trường hợp nào, khối mã tương ứng với trường hợp đó được thực thi. Mỗi trường hợp có một tên hoặc một số, được gọi là định danh của nó. Nếu không có trường hợp nào khớp với điều kiện, khối mã tương ứng với trường hợp mặc định sẽ được thực thi. Ví dụ tương tự về việc tìm số ngày trong mỗi tháng được thực hiện bằng công tắc bên dưới

Cú pháp câu lệnh switch

switch (condition) {
case identifier1:
//block of code
break;

case identifier2:
//block of code
break;

case identifier3:
//block of code
break;

case identifiern:
//block of code
break;

default:
//block of code
}

Ví dụ về câu lệnh Switch

switch (month) {
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12:
        cout << "31";
        break;
    case 2:
        cout << "28 or 29";
        break;
    case 4:
    case 6:
    case 9:
    case 11:
        cout << "30";
        break;
    default:
        cout << "Not a valid month!"; 
        break
}

Giải trình

Trong chuyển đổi, nếu chúng ta không có câu lệnh ngắt, trường hợp phù hợp sẽ xảy ra cho đến khi nó gặp câu lệnh ngắt, câu lệnh này sẽ được in ra ngoại trừ trường hợp mặc định. Trong đoạn mã trên, tháng 1 có nghĩa là tháng 1, tháng 2 có nghĩa là tháng 2, v.v. Biết rằng tháng 1, tháng 3, tháng 5, tháng 7, tháng 8, tháng 10, tháng 12 có 31 ngày, tháng 4, tháng 6, tháng 9 và tháng 11 có 30 ngày. Vì vậy, thay vì thêm câu lệnh in sau mỗi câu lệnh này, chúng ta chỉ có thể có câu lệnh in cho một trong số chúng và thêm câu lệnh ngắt sau đó. Xét trường hợp muốn tìm số ngày của tháng 9 hoặc tháng 9. Chúng tôi đi qua mã cho đến khi chúng tôi tìm thấy trường hợp 9. Sau đó, ta đến trường hợp 11, gặp câu lệnh in và in ra 30. Sau đó, chúng tôi thoát ra khỏi trường hợp chuyển đổi

Một số ưu điểm chính của switch so với thang if-else

  • Câu lệnh switch nhanh hơn đáng kể so với bậc thang if-else nếu có nhiều if-else lồng nhau liên quan. Điều này là do việc tạo một bảng nhảy cho switch trong quá trình biên dịch. Kết quả là, thay vì kiểm tra trường hợp nào thỏa mãn trong suốt quá trình thực thi, nó chỉ quyết định trường hợp nào phải được hoàn thành. Do đó, số lượng so sánh được thực hiện ít hơn, giảm thời gian biên dịch. Do đó, công tắc sẽ hoạt động tốt hơn trong khi chọn từ một tập hợp lớn các giá trị
  • Khi so sánh với câu lệnh if-else, nó dễ đọc hơn. Bạn cũng có thể thấy điều này trong các ví dụ nêu trên. Trong đoạn mã if-else, bạn không thấy rõ tháng nào có 30 ngày;

Sự khác biệt giữa if other và Switch Statement

Tham sốIf-elseSwitchDefinitionCác khối if và else được thực thi tùy thuộc vào điều kiện trong câu lệnh ifCâu lệnh switch có nhiều trường hợp và khối mã tương ứng với trường hợp đó được thực thiĐánh giáĐược sử dụng cho số nguyên, ký tự, con trỏ, kiểu dấu phẩy động hoặc kiểu Boolean. Được sử dụng cho các biểu thức ký tự và số nguyên. Kiểm tra Kiểm tra cả biểu thức logic và đẳng thức Chỉ kiểm tra đẳng thức Biểu thức Nhiều câu lệnh cho nhiều quyết định Một câu lệnh đơn cho nhiều quyết định Thực thi mặc định Nếu điều kiện bên trong câu lệnh if là sai, thì khối mã trong điều kiện khác sẽ được thực thi Nếu điều kiện bên trong câu lệnh chuyển đổi không khớp với bất kỳ trường hợp nào, . Trình tự thực hiện Hoặc khối mã trong câu lệnh if được thực thi hoặc khối mã trong câu lệnh khác. Câu lệnh switch case thực hiện từng trường hợp cho đến khi gặp câu lệnh break hoặc kết thúc câu lệnh switch. Tốc độNếu bạn sử dụng 'if-else' để triển khai một số tùy chọn, tốc độ sẽ chậm. Nếu chúng ta có nhiều tùy chọn, câu lệnh switch là giải pháp tốt nhất vì nó thực thi nhanh hơn đáng kể so với câu lệnh 'if-else'. Chỉnh sửa Khó chỉnh sửa các câu lệnh if-else lồng nhau. Dễ dàng chỉnh sửa. Giá trị Dựa trên ràng buộc Dựa trên người dùng

Sự khác biệt chính giữa If-else và Switch Case

Sự khác biệt chính giữa hai là

  • Câu lệnh if-else được sử dụng để chọn giữa hai tùy chọn, nhưng câu lệnh trường hợp chuyển đổi được sử dụng để chọn giữa nhiều tùy chọn
  • Nếu điều kiện bên trong khối if là sai, câu lệnh bên trong khối khác sẽ được thực thi. Nếu điều kiện bên trong câu lệnh chuyển đổi là sai, các câu lệnh mặc định sẽ được chạy
  • Các giá trị if-else được xác định bởi các ràng buộc, trong khi các giá trị trường hợp chuyển đổi được xác định bởi tùy chọn của người dùng
  • Rất khó để thực hiện các thay đổi đối với các câu lệnh if-else vì tốn thời gian để tìm ra nơi cần thực hiện thay đổi. Mặt khác, các câu lệnh chuyển đổi rất đơn giản để thay đổi vì chúng dễ theo dõi
  • Đối với nhiều câu lệnh, bạn có thể sử dụng một số câu lệnh if. Đối với nhiều câu lệnh trong Switch, bạn chỉ có một biểu thức

Một số điểm tương đồng giữa câu lệnh If-Else và Switch Case

Bây giờ chúng ta đã thấy và hiểu sự khác biệt giữa if-else và switch, đã đến lúc xem những điểm tương đồng giữa hai. đó là

  • Cả hai đều được sử dụng để kiểm soát luồng thực thi của chương trình
  • Cả hai đều đánh giá một điều kiện và sau đó luồng chương trình phụ thuộc vào điều kiện đó
  • Cú pháp và cách biểu diễn của chúng khác nhau nhưng có thể được sử dụng cho cùng một mục đích

Phần kết luận

Trong bài viết này, chúng tôi đã tổng hợp những điểm khác biệt và tương đồng chính giữa if-else và switch. Đây là cả hai câu lệnh điều kiện được sử dụng rất phổ biến và để kết thúc tất cả

Trường hợp chuyển đổi có nhanh hơn nếu không

Tốc độ. Câu lệnh chuyển đổi có thể chứng tỏ là nhanh hơn câu lệnh if với điều kiện số lượng trường hợp tốt . Nếu chỉ có một vài trường hợp, nó có thể không ảnh hưởng đến tốc độ trong mọi trường hợp. Thích chuyển đổi nếu số lượng trường hợp nhiều hơn 5, nếu không, bạn cũng có thể sử dụng if-else.

Lợi thế của việc sử dụng trường hợp chuyển đổi là gì nếu

Câu lệnh switch có độ sâu cố định. Nó cho phép triển khai được tối ưu hóa tốt nhất để thực thi mã nhanh hơn so với câu lệnh “if-else if”. Thật dễ dàng để gỡ lỗi và bảo trì các chương trình bằng cách sử dụng các câu lệnh chuyển đổi. Câu lệnh switch có khả năng thực thi nhanh hơn.

Là trường hợp hiệu quả hơn nếu?

Điều đầu tiên là trong hầu hết các trường hợp, câu lệnh tình huống hiệu quả hơn một chút so với cả đống câu lệnh if . Tuy nhiên, lý do thực sự duy nhất khiến các câu lệnh tình huống tốt hơn sẽ thực sự ảnh hưởng đến bạn là chúng dễ đọc hơn rất nhiều.

Switch Case có cải thiện khả năng đọc không?

Câu lệnh switch cho phép chúng ta thay thế một số cấu trúc if-else lồng nhau và do đó cải thiện khả năng đọc mã của chúng ta .