Chúng ta đã xem câu lệnh break trong bài viết trước. Nhắc lại, câu lệnh break sẽ kết thúc vòng lặp sau khi nó gặp phải. Đôi khi chúng ta chỉ muốn bỏ qua một lần lặp và tiếp tục với vòng lặp đó;
Hãy xem cách chúng ta có thể sử dụng câu lệnh continue bên trong mỗi vòng lặp. while, do-while, for và foreach. Mỗi vòng lặp sẽ lặp qua mảng sau
Trong ví dụ đầu tiên, chúng ta sẽ xem xét vòng lặp while. PHP sẽ lặp qua mảng $next_car; . Tôi đang nhận được một Skyline. ”
Theo thông lệ trong hầu hết các bài viết của tôi, tôi muốn xem qua ít nhất một ví dụ đầy đủ. Tôi nghĩ rằng nó cung cấp cho người đọc một cách nhìn rõ ràng về mã. trong ví dụ này
- PHP lặp lại “While Loop”
- Nó khởi tạo $i thành 0
- PHP gặp từ khóa while
- Nó nhìn vào điều kiện $i < count($next_car). Hàm count($next_car) trả về 5 vì có 5 phần tử trong mảng $next_car. Biến $i chứa giá trị 0 trong lần lặp đầu tiên. Vì 0 nhỏ hơn 5 nên biểu thức được đánh giá là true. PHP vào thân vòng lặp
- Câu lệnh if gặp phải. PHP kiểm tra để đảm bảo rằng phần tử hiện tại không bằng “R34 Skyline. ” Trong lần lặp đầu tiên, $next_car[$i++] trả về “Porsche 911. ” Ngay sau khi câu lệnh đó được xử lý, $i được lặp lại từ 0 đến 1 (hãy nhớ cách thức hoạt động của toán tử tăng sau)
- PHP kiểm tra xem “Porsche 911” có bằng “R34 Skyline không. ” Vì nó không, nên câu lệnh được đánh giá là đúng do. = toán tử. Nó nói, "Có đúng là Porsche 911 không bằng R34 Skyline?" . ”
- Vì câu lệnh if trả về giá trị true, PHP nhập phần thân câu lệnh if và lặp lại $i (điều này chỉ để cho bạn thấy rằng $i đã được tăng lên)
- Câu lệnh tiếp theo mà PHP gặp phải là câu lệnh continue. Câu lệnh continue yêu cầu PHP bỏ qua phần mã còn lại bên trong thân vòng lặp while và quay lại đầu trang để kiểm tra điều kiện của vòng lặp while. Vì vậy, quay lại bước 4 và lặp lại
- PHP sẽ gặp câu lệnh continue trong lần lặp thứ 2 và thứ 3
- Trong lần lặp thứ 4, câu lệnh if có điều kiện đánh giá là sai, do đó câu lệnh if bị bỏ qua. PHP đạt đến câu lệnh echo và xuất ra “Đúng vậy. Tôi đang nhận được một Skyline. ” Đây sẽ là một nơi hoàn hảo để thêm câu lệnh ngắt để thoát khỏi vòng lặp, nhưng chúng ta sẽ tiếp tục vì có thể có nhiều phần tử bên trong mảng chứa giá trị “R34 Skyline” (và vì chúng ta không bao gồm
- Bởi vì có nhiều phần tử hơn trong mảng và không có gì được thực hiện để kết thúc vòng lặp, nên nó tiếp tục cho đến khi đến phần tử cuối cùng. Mỗi lần, biểu thức trả về true bên trong câu lệnh if có điều kiện và câu lệnh continue được thực thi
- Khi $i tăng từ 5 lên 6, PHP đánh giá biểu thức bên trong vòng lặp while và nó trả về false. PHP thoát khỏi vòng lặp
Tiếp theo, hãy xem xét vòng lặp do-while. PHP đánh giá các câu lệnh bên trong phần thân do-while trước khi nó kiểm tra điều kiện do-while. Cuối cùng, kết quả tương tự được tạo ra. PHP sẽ gặp câu lệnh continue mỗi khi “R34 Skyline” không được trả về. Khi nó được trả về, PHP sẽ xuất ra “Đúng vậy. Tôi đang nhận được một Skyline. ”
Hãy kết hợp nó một chút với ví dụ về vòng lặp for. Chúng tôi sẽ thêm “Subaru STi” vào mảng, đây tình cờ là một chiếc xe mà tôi đã sở hữu. Chúng tôi muốn lặp qua mảng $next_car và xuất thông báo. “BLANK-CAR chắc chắn là một khả năng…có đủ người đăng ký. ” BLANK-CAR tham chiếu từng giá trị phần tử mảng. Nếu gặp Subaru STi, chúng tôi không muốn xuất bất cứ thứ gì vì chúng tôi đã sở hữu nó (hoặc ít nhất là tôi đã sở hữu nó). Vì vậy, nếu PHP gặp giá trị đó, nó sẽ bỏ qua nó bằng cách sử dụng câu lệnh continue
Mã đạt được điều đó. Nó lặp qua từng phần tử mảng. Nếu giá trị khớp với “Subaru STi”, câu lệnh tiếp tục được bắt gặp và PHP bỏ qua mã còn lại bên trong vòng lặp. Nó quay trở lại đầu trang và lặp lại quá trình. Nếu không, câu lệnh continue sẽ không xuất hiện và mã bên dưới câu lệnh if được thực thi
Hãy nhìn vào vòng lặp cuối cùng. vòng lặp foreach. Vòng lặp foreach sẽ giống với vòng lặp for về mặt logic (chỉ khác ở cú pháp)
Và đó là nó. Đó là cách bạn sử dụng câu lệnh continue bên trong mỗi vòng lặp. Quá trình này hoàn toàn giống nhau cho mỗi vòng lặp (không có ý định chơi chữ)
dinocajic/php-7-youtube-tutorials
Mã cho PHP 7. x hướng dẫn trên YouTube
github. com
Dino Cajic hiện là Trưởng phòng CNTT tại LSBio (LifeSpan BioSciences, Inc. ), Kháng thể tuyệt đối, Kerafast, Everest BioTech, Nordic MUbio và Exalpha. Ông cũng là Giám đốc điều hành tại MyAutoSystem. Ông có hơn một thập kỷ kinh nghiệm về công nghệ phần mềm. Anh ấy có điểm B. S. về Khoa học Máy tính và môn phụ về Sinh học. Nền tảng của anh ấy bao gồm việc tạo ra các ứng dụng thương mại điện tử cấp doanh nghiệp, thực hiện phát triển phần mềm dựa trên nghiên cứu và tạo điều kiện phổ biến kiến thức thông qua viết lách
Bạn có thể kết nối với anh ấy trên LinkedIn, theo dõi anh ấy trên Instagram hoặc đăng ký ấn phẩm Phương tiện của anh ấy
Đọc mọi câu chuyện từ Dino Cajic (và hàng nghìn nhà văn khác trên Medium). Phí thành viên của bạn trực tiếp hỗ trợ Dino Cajic và các nhà văn khác mà bạn đọc. Bạn cũng sẽ có toàn quyền truy cập vào mọi câu chuyện trên Phương tiện