Hướng dẫn which is better if else or switch php? - cái nào tốt hơn nếu khác hoặc chuyển đổi php?
Ví dụ đầu tiên của bạn chỉ đơn giản là sai. Bạn cần Show
Nếu bạn sử dụng Tuy nhiên, nếu tất cả các điều kiện của bạn thuộc loại 0 giống nhau trong mọi điều kiện, switch thường có ý nghĩa. Tôi cũng chỉ sử dụng switch nếu có nhiều hơn ví dụ: Hai điều kiện.Một trường hợp trong đó
Sau đó 4 chỉ được gọi một lần trong khi với
Nó sẽ được gọi là hai lần - bao gồm các tác dụng phụ có thể xảy ra của chức năng xảy ra hai lần. Tuy nhiên, bạn luôn có thể sử dụng 5 và sau đó sử dụng 6 trong các điều kiện 7 của bạn - để bạn có thể tránh được vấn đề này.Một trường hợp bạn không thể sử dụng công tắc là khi bạn có điều kiện phức tạp hơn - 9 với 0 là một giá trị không đổi.cannot use switch at all is when you have more complex conditions - switch only works for 9 with 0 being a
constant value.
Nếu bạn là người mới lập trình và JavaScript, bạn có thể bị nhầm lẫn về những câu lệnh có điều kiện nào sẽ sử dụng, đặc biệt là giữa các câu lệnh IF-Else và Case. Khi tôi lần đầu tiên tìm hiểu về các tuyên bố có điều kiện, tôi nghĩ rằng nó đủ đơn giản và tôi có thể sử dụng IF-Else hoặc chuyển đổi trong mọi trường hợp. Nhưng sau đó, khi tôi tìm hiểu thêm về chủ đề này và cố gắng áp dụng nó vào một số vấn đề, tôi đã nhầm lẫn về cái nào tôi nên sử dụng, sự khác biệt chính xác là gì và tôi nên chọn đúng cách nào. Tôi đã đấu tranh về việc hiểu sự khác biệt và áp dụng của hai tuyên bố có điều kiện này và đào sâu hơn vào chủ đề này. Trong bài viết này, tôi sẽ giải thích hai khái niệm này và cung cấp một biểu đồ so sánh, vì vậy bạn sẽ hiểu cách bạn có thể sử dụng if-else và trường hợp chuyển đổi trong các kịch bản khác nhau theo sự phức tạp. Trước khi nhảy vào chi tiết, hãy làm mới bộ nhớ của chúng tôi về lý do tại sao chúng tôi sử dụng các câu lệnh có điều kiện trong các chương trình của chúng tôi. Là con người, chúng ta đưa ra nhiều quyết định khác nhau trong suốt thời gian ảnh hưởng đến cuộc sống của chúng ta. Ví dụ, nếu chúng ta có thời gian rảnh, chúng ta phải quyết định phải làm gì, có nên nghỉ ngơi, xem một cái gì đó, gọi cho ai đó hoặc có thể làm điều gì đó hiệu quả. Các tuyên bố có điều kiện cho phép chúng tôi đưa ra quyết định như vậy dựa trên một điều kiện trong JavaScript. Nếu điều kiện là đúng, chúng ta có thể thực hiện một hành động, nếu không, chúng ta có thể thực hiện một hành động khác. Vì vậy, cả trong trường hợp thay đổi và chuyển đổi cho phép chúng tôi đưa ra các quyết định này dựa trên một điều kiện. Nếu bạn muốn làm mới bộ nhớ của mình về cách hoạt động có điều kiện, hãy xem bài viết MDN này. Các câu lệnh if-else và else-ifLà người mới, tất cả chúng ta đều yêu thích những tuyên bố IF-Else! 😂 Tuyên bố If-Else có một điều kiện cụ thể và kiểm tra xem điều kiện là sự thật hay giả. Nếu điều kiện là đúng, thì câu lệnh 7 sẽ thực thi một khối mã cụ thể. Nếu điều kiện là sai, thì câu lệnh else sẽ thực thi một khối mã khác.Hãy lấy một ví dụ đơn giản để hiểu cách thức hoạt động của nó. Kịch bản một Hãy tưởng tượng rằng bạn là giáo viên lớp cho lớp 5, lớp C. Bạn phải kiểm tra điểm số của học sinh dựa trên điểm của họ và bạn chỉ phải kiểm tra xem học sinh đã vượt qua hay thất bại. Chúng ta hãy kiểm tra một trong các điểm của học sinh dựa trên điểm của họ bằng cách sử dụng tuyên bố if-else.
Nhập chế độ FullScreenen EXIT Mode FullScreen Theo ví dụ trên, chúng tôi đã viết một chức năng đơn giản lấy điểm của học sinh và kiểm tra xem nó trên 50 hoặc dưới 50. Nếu các điểm được nhập từ 50 trở lên, thì khối 7 thực thi. Nếu nó dưới 50, thì khối else sẽ thực thi.Kịch bản hai Bây giờ, hãy tưởng tượng tiến thêm một bước và đưa ra kết quả dựa trên các lớp cụ thể của học sinh. Ví dụ: nếu học sinh nhận được "A+", học sinh nhận được "đóng đinh nó!". Nếu học sinh nhận được "D", kết quả sẽ là "thất bại". Để có nhiều lựa chọn như thế này, chúng ta có thể sử dụng các câu lệnh khác nếu chuỗi các lựa chọn bổ sung. Xem mã bên dưới được viết theo kịch bản thứ hai với các câu lệnh khác.
Nhập chế độ FullScreenen EXIT Mode FullScreen Theo ví dụ trên, chúng tôi đã viết một chức năng đơn giản lấy điểm của học sinh và kiểm tra xem nó trên 50 hoặc dưới 50. Nếu các điểm được nhập từ 50 trở lên, thì khối 7 thực thi. Nếu nó dưới 50, thì khối else sẽ thực thi.Kịch bản haiBây giờ, hãy tưởng tượng tiến thêm một bước và đưa ra kết quả dựa trên các lớp cụ thể của học sinh. Ví dụ: nếu học sinh nhận được "A+", học sinh nhận được "đóng đinh nó!". Nếu học sinh nhận được "D", kết quả sẽ là "thất bại". Để có nhiều lựa chọn như thế này, chúng ta có thể sử dụng các câu lệnh khác nếu chuỗi các lựa chọn bổ sung. Xem mã bên dưới được viết theo kịch bản thứ hai với các câu lệnh khác. Nhập chế độ FullScreenen EXIT Mode FullScreen Theo ví dụ trên, chúng tôi đã viết một chức năng đơn giản lấy điểm của học sinh và kiểm tra xem nó trên 50 hoặc dưới 50. Nếu các điểm được nhập từ 50 trở lên, thì khối 7 thực thi. Nếu nó dưới 50, thì khối else sẽ thực thi.Kịch bản hai Bây giờ, hãy tưởng tượng tiến thêm một bước và đưa ra kết quả dựa trên các lớp cụ thể của học sinh. Ví dụ: nếu học sinh nhận được "A+", học sinh nhận được "đóng đinh nó!". Nếu học sinh nhận được "D", kết quả sẽ là "thất bại".
Theo so sánh ở trên, bạn có thể thấy quyết định lựa chọn có điều kiện là tùy thuộc vào kịch bản và sự phức tạp của nó. Ví dụ: chúng ta có thể chọn cả câu lệnh IF-Else và Switch cho kịch bản thứ hai vì chúng tôi chỉ kiểm tra một báo cáo, điều này có thể không tạo ra bất kỳ sự khác biệt nào về hiệu suất ngoại trừ khả năng đọc. Hãy tiến thêm một bước và làm cho kịch bản của chúng tôi hơi phức tạp. Kịch bản ba Điều gì sẽ xảy ra nếu chúng ta muốn in điểm cho tất cả các học sinh trong tất cả các lớp? Hãy tưởng tượng rằng chúng tôi có mười lớp cho lớp 5. và mỗi lớp bao gồm 50 học sinh. Vì vậy, hoàn toàn, chúng tôi phải kiểm tra và in kết quả cho khoảng 500 sinh viên. Nếu chúng ta sử dụng câu lệnh IF-Else cho việc này, chúng ta có thể gặp phải một độ trễ hiệu suất nhỏ. Đó là bởi vì, trong quá trình thực thi, câu lệnh if-else luôn thực thi biểu thức để kiểm tra xem điều kiện có thỏa mãn hay không. Mọi thứ sẽ trở nên chậm hơn khi có nhiều điều kiện hơn để kiểm tra và khi các lựa chọn trở nên phức tạp. Mặt khác, một câu lệnh chuyển đổi hoạt động tương đối nhanh hơn vì trình biên dịch tạo ra một bảng nhảy cho các trường hợp chuyển đổi trong thời gian biên dịch. Vì vậy, khi mã chạy, thay vì kiểm tra các trường hợp nào được thỏa mãn, nó chỉ quyết định trường hợp nào nên được thực thi. Trong kịch bản thứ ba của chúng tôi, để tạo báo cáo cho nhiều sinh viên, trường hợp chuyển đổi có thể là cách tiếp cận tốt hơn. Tôi hy vọng bây giờ bạn có thể hiểu rằng dựa trên so sánh ở trên và các ví dụ của chúng tôi, cả hai câu lệnh đều có vị trí của chúng trong mã và tùy thuộc vào bạn để chọn một trong những phù hợp với kịch bản nào. Không có cách làm đúng hay sai. Vậy làm thế nào chúng ta có thể chọn câu nói nào để sử dụng? Chọn cái này qua cái kia không đơn giản. Dưới đây là một số lời khuyên khi chọn cái này qua cái kia; Bạn có thể sử dụng IF-Else khi:
Bạn có thể sử dụng trường hợp chuyển đổi khi:
Vì vậy, dựa trên hiệu suất, khả năng đọc, khả năng hiểu, khả năng thay đổi, bạn sẽ phải quyết định xem có nên sử dụng các câu lệnh IF-Else hay báo cáo chuyển đổi hay không. Khi bạn đọc thêm mã và viết thêm mã, cuối cùng, bạn sẽ bắt đầu tìm ra cái nào phù hợp với kịch bản nào; Nó đi kèm với thực hành. Ngoài ra, có nhiều cách tiếp cận hơn nếu bạn muốn tránh các điều kiện nhiều nhất có thể, đặc biệt là trong JavaScript; Tra cứu mảng hoặc tra cứu đối tượng là một vài cách tiếp cận phổ biến. Bớt tư tưởngBạn có thể thấy khó hiểu khi quyết định khi nào nên sử dụng câu nói nào như một người mới, nhưng nó trở nên tốt hơn với thực hành nhiều hơn. Hãy nhớ rằng mọi trường hợp đều yêu cầu một giải pháp cụ thể nhưng không có câu trả lời đúng hay sai. Và tùy thuộc vào bạn để chọn một giải pháp phù hợp dựa trên kinh nghiệm của bạn. Vì vậy, tôi hy vọng rằng sự so sánh được cung cấp ở đây giúp bạn dễ dàng xác định sự khác biệt giữa các câu lệnh IF-Else và chuyển đổi và không chọn một bên.
Mã hóa hạnh phúc! References:
Công tắc nào nhanh hơn hoặc nếu PHP?Quy tắc chung là sử dụng công tắc bất cứ khi nào số điều kiện lớn hơn 3 (cho khả năng đọc). Nếu / nếu không / khác linh hoạt hơn (do đó tốt hơn), nhưng công tắc nhanh hơn một chút vì nó chỉ tính toán điều kiện một lần và sau đó kiểm tra đầu ra, trong khi nếu phải làm điều này mỗi lần.switch is slightly faster because it just computes the condition once and then checks for the output, while if has to do this every time.
Tốt hơn là sử dụng công tắc hay nếuMột câu lệnh chuyển đổi nhanh hơn đáng kể so với thang if-else nếu có nhiều if-else liên quan.Điều này là do việc tạo ra một bảng nhảy cho công tắc trong quá trình biên dịch.Kết quả là, thay vì kiểm tra trường hợp nào được 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.. This is due to the creation of a jump table for switch during compilation. As a result, instead of checking which case is satisfied throughout execution, it just decides which case must be completed.
Công tắc nhanh hơn là gì hoặc nếuMột câu lệnh Switch hoạt động nhanh hơn nhiều so với thang if-else tương đương.Đó là do trình biên dịch tạo ra một bảng nhảy cho một công tắc trong quá trình biên dịch.Kết quả là, trong quá trình thực hiện, thay vì kiểm tra trường hợp nào được thỏa mãn, nó chỉ quyết định trường hợp nào phải được thực thi.. It's because the compiler generates a jump table for a switch during compilation. As a result, during execution, instead of checking which case is satisfied, it only decides which case has to be executed.
Là chuyển đổi hay nếu hiệu quả hơn?Hóa ra, câu lệnh chuyển đổi nhanh hơn trong hầu hết các trường hợp khi so sánh với IF-Else, nhưng chỉ nhanh hơn đáng kể khi số lượng điều kiện lớn.Sự khác biệt chính về hiệu suất giữa hai là chi phí gia tăng của một điều kiện bổ sung lớn hơn đối với IF-Else so với đối với Switch.the switch statement is faster in most cases when compared to if-else , but significantly faster only when the number of conditions is large. The primary difference in performance between the two is that the incremental cost of an additional condition is larger for if-else than it is for switch . |