Trang chủ » Blog » Học lập trình PHP căn bản phần 6

Học lập trình PHP căn bản phần 6

bởi CodeGym | 27/12/2023 11:27 | Blog

Khác với vòng lặp for trong PHP. Vòng lặp while và vòng lặp do while lặp đối với tất cả những bài toán không xác định được số lần lặp. Còn vòng lặp for thì biết được số lần lặp thì mới lặp được. Tuy nhiên có những bài toán chúng ta có thể dùng cả 3 vòng lặp for, while và do while để giải. Nhưng để làm được thì trước tiên chúng ta phải tìm hiểu các khái niệm vòng lặp whiledo while trong PHP.

Bài 08: Vòng lặp while và do while trong PHP.

Nội dung chính

  • 1. Cấu trúc vòng lặp while.
  • 2. Cấu trúc vòng lặp do while.
  • 3. Một bài toán có thể giải ở cả ba vòng lặp không?
  • 4. Khi nào thì sử dụng vòng lặp for, while, do while.
  • 5. Vòng lặp while, do while lồng nhau.
  • 6. Vòng lặp while, do while trong việc truy xuất mảng.
  • 7. Lời kết.

1. Cấu trúc vòng lặp while

Cú pháp:

Học lập trình PHP căn bản phần 6

Ở đó $condition là điều kiện để dừng vòng lặp lại. Nếu $condition có giá trị false thì vòng lặp kết thúc. Ngược lại vòng lặp sẽ tiếp tục lặp. Vòng lặp while sẽ được lặp vô hạn nếu biểu thức điều kiện bạn truyền vào luôn luôn đúng.

Ví dụ:  Dùng vòng lặp while trong php liệt kê các số từ 1 tới 10.

Để giải được bài toán này ta có thể dùng vòng lặp for trong php để giải một cách dễ dàng.

Học lập trinh PHP căn bản phần 6

Giải thích:
  • $i = 1 là biến dùng để lặp.
  • while ($i <= 10) là dòng bắt đầu vòng lặp, trong đó điều kiện lặp là $i <= 10.
  • echo $i . ‘ -  ‘ xuất ra màn hình biến $i và ký tự -.
  • $i++  Tăng biến $i lên 1 đơn vị. Ví dụ hiện tại $i = 1 thì sau khi vòng lặp chạy thì biến $i = 2. dòng này rất quan trọng vì nếu không có dòng này biến $i sẽ luôn luôn bằng 1 sau mỗi vòng lặp. như thế điều kiện vòng lặp sẽ thành ​($i <= 10) <=> (1 <= 10) => đúng => vòng lặp sẽ bị lặp vô hạn.

Tương tự  lần lặp 3, 4, 5, 6, 7, 8, 9: Sau vòng lặp thứ 9 biến $i sẽ có giá trị $i = 10.

Kết thúc: Kết hợp các kết quả lại với nhau thì màn hình sẽ in ra dòng “1 – 2 – 3 – 4 – 5 – 6 – 7 – 8 – 9 – 10 – “.

Chú ý :

  • Với vòng lặp for thì lặp theo một quy luật tăng, giảm đều thì đối với while không những lặp theo quy luật mà bạn có thể lặp theo một biểu thức.

Ví dụ:

Vòng lặp này sẽ thực hiện 3 lần.

2. Cấu trúc vòng lặp do while

Vòng lặp while sẽ kiểm tra điều kiện trước rồi mới thực hiện câu lệnh bên trong vòng lặp. Còn vòng lặp do while thì sẽ  ngược lại thực hiện câu lệnh bên trong vòng lặp trước rồi mới kiểm tra điều kiện. Nếu điều kiện là đúng thì sẽ thực hiện tiếp vòng lặp kế tiếp. Nếu điều kiện sai thì sẽ dừng vòng lặp. Vòng lặp do while trong php luôn luôn thực hiện ít nhất một lần lặp. vì nó thực hiện trước rồi mới kiểm tra điều kiện.

Cú pháp: 

Đừng quên đặt dấu chấm phẩy ; sau mệnh đề while các bạn nhé.

Ví dụ:

Chương trình này thực hiện xuất ra màn hình các số từ 1 tới 10. Giải thích tương tự như while. Ở mỗi bước lặp sẽ xuất ra màn hình biến $i. Sau đó tăng $i lên 1. và cuối cùng là kiểm tra điều kiện nếu ($i <= 10) đúng thì sẽ lặp vòng tiếp theo.  Ngược lại sẽ dừng vòng lặp.

Ví dụ:

Vòng lặp này sẽ lặp 1 lần tại vì nó thực hiện do xong rồi mới kiểm tra điều kiện while. Đây là lý do tại sau tôi nói vòng lặp while luôn thực hiện ít nhất 1 lần.

Chú ý:

Cũng như lưu ý ở vòng lặp while, vòng lặp do while trong PHP rất dễ bị lặp vô hạn. Vì thế hãy cẩn thận khi sử dụng nó.

3. Một bài toán có thể giải ở cả ba vòng lặp không?

Câu trả lời là có thể có và có thể không. Như ở ví dụ ở trên thì với vòng lặp for ta không thể thực hiện được.

Học lập trình PHP căn bản phần 6.

Ví dụ: Ta in ra màn hình các số từ 100 đến 200;

Dùng vòng lặp for:

học lập trình PHP căn bản phần 6.

Dùng vòng lặp while:

Học lập trình PHP căn bản phần 6.

Dòng vòng lặp do while:

Học lập trình PHP căn bản phần 6.

4. Khi nào thì sử dụng vòng lặp for, while, do while

Vấn đề này tùy vào kinh nghiệm của từng người. nhưng có một điểm chung để ta có thể xác định được là:

Những bài toán lặp theo một trình tự nhất định. Tất Các bước lặp cách đều nhau (1,2,3,4) và phải biết được tổng số lần lặp thì ta dùng vòng lặp for.

Ngược lại những bài toán khác thì ta dùng vòng lặp while hoặc do … while.

5. Vòng lặp while, do while lồng nhau

Cũng là như vòng lặp for và mệnh đề if, vòng lặp while và vòng lặp do while có thể lồng nhau để giải quyết bài toán của chúng ta.

Ví dụ:

Vòng lặp này sẽ xuất ra ngoài màn hình một hình tam giác với các con số:

123456789
23456789
3456789
456789
56789
6789
789
89
9

Tổng số lần lặp chính là bằng tích số lần lặp của 2 vòng lặp cộng thêm số lần lặp của vòng lặp cha. Ví dụ vòng lặp 1 lặp 10 lần, vòng lặp 2 lặp 10 lần thì tổng số vòng lặp sẽ là 10 x 10 + 10 = 110 lần. Vì thế chi phí để lặp lồng nhau rất là cao.

6. Vòng lặp while, do while trong việc truy xuất mảng

Tương tự như là vòng lặp for, vòng lặp while và do while có thể dùng để truy xuất các phần tử trong mảng chỉ mục.

Ví dụ:

Học lập trình PHP căn bản phần 6.

7. Lời kết

Ở trong bài học này các bạn đã được học vòng lặp while và do while, vậy tổng cộng chúng ta đã được học ba vòng lặp đó là ifwhile và do while.


Trong bài tiếp theo chúng ta sẽ tìm hiểu một vòng lặp chuyên dùng xử lý mảng trong php. Đó là vòng lặp foreach.

 

Bài 09: Vòng lặp foreach trong php.

Trong các bài trước chúng ta đã được học ba vòng lặp ( vòng lặp forvòng lặp while và do while). Vậy thì hôm nay chúng ta sẽ được biết thêm một vòng lặp mới nữa đó là vòng lặp foreachVòng lặp foreach trong PHP dùng để lặp các phần tử ở trong mảng. Chính vì thế nó được sử dụng rất nhiều khi chúng ta làm dự án với PHP. Hầu như ai cũng thích bởi vì sử dụng đơn giản.

Nội dung chính

  • 1. Cú pháp vòng lặp foreach trong PHP.
  • 2. Lời kết.

1. Cú pháp vòng lặp foreach trong PHP

Cú pháp vòng lặp foreach trong PHP:

Trong đó $array là mảng cần lặp,$key là số chỉ mục (mảng có chỉ mục) hay là key (trong mảng kết hợp), $value là giá trị của phần tử ở vị trí $key.

Ví dụ 1:

Vòng lặp foreach sẽtự động lặp qua các phần tử trong mảng. Nó lặp cho khi nào tới phần tử cuối cùng thì thôi. Như ở ví dụ trên thì $nam là mảng ta truyền vào. $key và $value là 2 tham số mà ở mỗi vòng lặp nó sẽ tự động truyền giá trị vào đó và chúng ta chỉ việc sử dụng. Kết quả xuất ra màn hình là:

Nếu để ý kỹ thì các bạn sẽ thấy trong vòng lặp tôi chỉ truyền $nam vào. còn $key và $value không thay đổi, phải chăng nó luôn luôn như vậy? Câu trả lời là không phải, bạn có thể đặt nó là một cái tên bất kì nhé. ví dụ chương trình sau là tương đương:

Ở bài toán trên chúng ta có thể dùng cú pháp thứ 2 của vòng lặp foreach trong php để giải nó:

Tại ví dụ này ta không lấy được $key mà chỉ lấy được mỗi $value bởi vì ta không truyền biến $key vào. Kết quả xuất ra màn hình là:

Ví dụ 2:

Trong ví dụ này danh sách sinh viên truyền vào là một mảng kết hợp theo quy tắc mssv => tensv, trong vòng lặp sẽ xuất ra mã số sinh viên và tên sinh viên tương ứng. Với cách giải sau thì chỉ lấy được tên chứ không lấy được mã số sinh viên:

Đấy chính là sự khác biệt giữa hai cách lặp.

Muốn hiểu rõ hơn về vòng lặp foreach trong PHP thì mời các bạn đọc bài viết “bản chất vòng lặp foreach trong php”. Đây là một bài thảo luận về tốc độ cũng như là quy trình hoạt động của vòng lặp foreach.

2. Lời kết

Kết thúc bài này tôi hy vọng các bạn nắm chắc chắn được cách sử dụng vòng lặp foreach trong php để xử lý mảng. Lưu ý với tất cả các bạn rằng vòng lặp foreach có thể lặp lồng nhau để xử lý mảng nhiều chiều, mình sẽ không cho ví dụ vì bài quá dài đọc dễ nhàm chán và cũng một phần vì trong quá trình học chúng ta sẽ đụng tới vấn đề này nên coi như tôi duyệt nó ở phần sau.

Trong bài tới chúng ta học các lệnh break, continiue, go to, die, exit. Đó là Tất cả lệnh kết thúc vòng lặp hoặc thoát chương trình.

Tags:

0 Lời bình

Gửi Lời bình

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

BÀI VIẾT LIÊN QUAN

BẠN MUỐN HỌC LẬP TRÌNH?

GỌI NGAY

098 953 44 58

Đăng ký tư vấn lộ trình học lập trình

Đăng ký tư vấn, định hướng lộ trình học và giải đáp các thắc mắc về ngành nghề – Miễn phí – Online.

1 + 12 =

TƯ VẤN VỀ LỘ TRÌNH HỌC NGHỀ LẬP TRÌNH TẠI CODEGYM
TƯ VẤN VỀ LỘ TRÌNH HỌC NGHỀ LẬP TRÌNH TẠI CODEGYM