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

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

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

Như ta đã biết, câu lệnh if else dùng để kiểm tra và rẽ nhánh cách mệnh đề của bài toán. Nhưng không phải nó là duy nhất. Trong php có câu lệnh khác đó là lệnh rẻ nhanh switch case.

Bài 06: Câu lệnh switch case trong php

Trong bài này ta sẽ tìm hiểu ba vấn đề chính:
  • 1. Câu lệnh switch trong PHP.
  • 2. Switch và if.
  • 3. Switch lồng nhau.

1. Câu lệnh switch trong PHP

Câu lệnh switch trong php cho phép chúng ta, đưa ra quyết định có nhiều cách lựa chọn để giá trị của biểu thức truyền vào. Nếu giá trị biểu thức truyền vào trùng với các giá trị biểu thức điều kiện thì các câu lệnh bên trong biểu thức điều kiện sẽ được thực hiện.

Cú pháp:

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

Ở trong đó lệnh switchcase và default là các từ khóa trong PHP. Chuỗi câu lệnh có thể là lệnh đơn (1 lệnh) hay lệnh ghép (kết hợp nhiều lệnh). và không cần đặt trong cặp dấu ngoặc nhọn {}. Ở mỗi dòng lệnh lựa chọn (case). Nó sẽ so sánh xem biến truyền vào $variable có bằng với biến điều kiện $value_1, $value_2 hay không.

Nếu trùng với case thì những câu lệnh bên trong case đó sẽ được thực hiện và đồng thời dòng lệnh break sẽ kết thúc câu lệnh switch. Nếu không có lựa chọn (case) nào đúng thì nó sẽ mặc định chạy vào chuỗi dòng lệnh trong default. Lệnh default trong mệnh đề rẻ nhánh switch có thể có hoặc không.

Mỗi giá trị ở case chỉ chấp nhận các kiễu dữ liệu string, INT, boolean, null, foat. hoặc là một biểu thức có kết quả trả về một trong năm loại dữ liệu đó. Cùng với đó toán tử quan hệ so sánh trong switch luôn luôn là ==.

Ví dụ: Viết chương nhập vào một số, dùng lệnh rẻ nhánh switch kiểm tra số đó nếu:

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

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

Giải thích:

  • 1: Biểu thức truyền vào là biến $number có giá trị = 10.
  • 2: Ở  case thứ nhất điều kiện là $number = 0 thì mới thực hiện. Mà $number = 10 nên không thỏa điều kiện.
  • 3: Tương tự cho các lệnh case còn lại đều không thỏa điều kiện.
  • 4: Đến lệnh default, đây là lệnh được thực hiện khi các lênh case trên không có cái nào thỏa điều kiện nên trên màn hình sẽ xuất hiện chữ “Không tìm thấy”.
Giả sử ta nhập biên $number = 2, bài toán trên sẽ được giải thích như sau:
  • : Nhập $number = 2.
  • : Ở đây case thứ nhất không thỏa điều kiện vì 2 khác 0 nên chương trình sẽ qua Case tiếp theo.
  • : Ở đây case thứ 2 vẫn không thỏa điều kiện vì 2 khác 1, nên chương trình sẽ qua Case tiếp theo.
  • : Ở đây case thứ 3 này thỏa điều kiện vì 2 bằng 2. Lúc này chương trình sẽ chạy vào các câu lệnh bên trong nên xuất ra màn hình chữ ‘Số hai’. Cùng lúc dòng Break dừng luôn cả chương trình rẻ nhánh này vì đã thỏa mãn. Kết thúc chương trình.

2. Switch và if

Lệnh If và  lệnh Switch là 2 dạng lệnh rẻ nhánh trong PHP. Tuy nhiên lệnh if vẫn linh hoạt hơn switch và tốc độ cũng nhanh hơn. Với những bài toán ta thể hiện bằng switch thì hoàn toàn có thể chuyển thành if. Ngược lại những bài toán ta dùng lệnh if để thể hiện, thì chưa chắc đã chuyển qua lệnh switch được.

Với bài toán trên ta thể hiện bằng câu lệnh if như sau:

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

3. Switch lồng nhau

Cũng như  lệnh if,  lệnh switch cũng có thể lồng nhau.

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

3. Lời kết

Trong bài học lập trình PHP này hy vọng các bạn hiểu được, cách sử dụng lệnh switch case trong php và có những quyết định sáng suốt trong việc lựa chọn giữa lệnh switch và lệnh if. Trong bài học tới chúng ta sẽ nghiên cứu về vòng lặp. Có 4 loại vòng lặp trong php nhưng chúng ta nghiên cứu vòng lặp for trước.

Bài 07: Vòng lặp for trong php

Vậy là ta đã học xong hai lệnh rẻ nhánh rất quan trọng trong lập trình php: đó là câu lệnh switch case và câu lệnh if else. Vậy thì trong bài này ta sẽ bắt đầu tìm hiểu một khái niệm mới hơn đó là vòng lặp. Và ta sẽ tìm hiểu khái niệm vòng lặp for trong php trước.

1. Vòng lặp là gì ?

Vòng lặp là một mã lệnh trong đó chương trình được thực hiện lặp đi lặp lại nhiều lần cho đến khi thỏa một điều kiện nào đó. Vòng lặp là một khái niệm cơ bản trong lập trình cấu trúc.

Trong PHP có các vòng lặp sau:
  • Vòng lặp for ta sẽ học trong bài này.
  • Kế tiếp sẽ là vòng lặp while và do while ta sẽ học ở bài 8.
  • Và cuối cùng là vòng lặp foreach phần này bạn sẽ học ở bài 9.

2. Vòng lặp for

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

Trong đó: 

$bien_dieu_khien: đó là một câu lệnh gán giá trị ban đầu cho biến điều khiển trước khi thực hiên vòng lặp. Hoặc là một biến có giá trị sẵn mà ta đã truyền vào cho nó trước khi tạo vòng lặp này. Lệnh này được thực hiện duy nhất một lần.

$bieu_thuc_dieu_kien: là một biểu thức quan hệ xác định điều kiện thoát khỏi vòng lặp.

$bieu_thuc_thay_doi_bien_dieu_khien: Xác định biến điều khiển sẽ bị thay đổi như thế nào sau mỗi lần lặp được lặp lại (thường là tăng hoặc giảm giá trị của biến điều khiển).

Ba biểu thức trên được cách nhau bởi dấu chấm phẩy. Vòng lặp sẽ lặp lại khi biểu thức điều kiện đúng. Khi biểu thức điều kiện sai thì vòng lặp sẽ dừng và thoát. và ta sử dụng các toán tử quan hệ và toán tử logic trong các biểu thức điều kiện để điều khiển vòng lặp.

Xét ví dụ dưới đây:

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

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

Tương tự cho các bước lặp 3, 4, 5, 6, 7, 8, 9.

Bước lặp 10: $i = 10, biểu thức điều kiện sẽ thành (10 < 10) => false => vòng lặp kết thúc. Lúc này biến $i sẽ giữ nguyên và không tăng lên nữa nên giữ nguyên giá trị 10.

Kết thúc: Màn hình xuất ra chuỗi “0 – 1 – 2 – 3 – 4 – 5 – 6 – 7 – 8 – 9 – ”.

Với ví dụ trên thì ta có thể viết lại như sau và kết quả trả về là giống nhau. Chỉ khác nhau ở chỗ biến $iđược gán giá trị ở ngoài vòng lặp.

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

Trong thân vòng lặp ta có thể thêm những biểu thức bằng cách dùng dấu phảy để ngăn cách chúng.

3. Vòng lặp for lồng nhau

Giống như câu điều kiện if, vòng lặp for trong php có thể lồng nhau để xử lý bài toán. Ở mỗi vòng lặp cha thì vòng lặp con sẽ được thực hiện (vòng lặp con lặp cho đến hết). Điều này tuân thủ theo quy tắc phải thực hiện hết nội dung dòng lệnh bên trong vòng lặp mới thực hiện vòng kế tiếp.

Ví dụ:

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

Bài toán này xuất ra màn hình một tam giác:

987654321
98765432
9876543
987654
98765
9876
987
98
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í để vòng lặp for lặp lồng nhau rất cao.

4. Vòng lặp for kết hợp với mảng

Từ ví dụ trên ta nhận thấy rằng vòng lặp for trong php lặp một cách trình tự tăng hoặc giảm đều. Điều này giống với các chỉ mục trong mảng. Vậy ta nhận xét rằng có thể dùng vòng lặp để truy xuất từng phần tử của mảng.

Ví dụ: Cho một mảng các sinh viên:

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

Hãy xuất các sinh viên trong mảng ra màn hình ?

Cách 1: Dựa vào chỉ mục xuất ra từng phần tử

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

Nhìn vào bài giải các bạn có biết tại sao chỉ mục lại bắt đầu bằng 0 ? Tại vì trong mảng phần tử đầu tiên có ví trí số 0. Và phần tử cuối cùng có vị trí (n-1). Trong đó n là tổng số phần tử.

Với cách giải thứ 2 ta có thể biến đổi một chút là dùng hàm count(). để đếm tổng số phần tử và lặp. Như vậy dù trong mảng sinh viên có bao nhiêu phần tử đi nữa thì vẫn không ảnh hưởng gì đến code. Nếu chúng ta không làm vậy thì giả sử ta xóa danh sách sinh viên còn xuống 3 sinh viên. Thì với cách 2 sẽ thông báo lỗi ngay, còn cách dưới đây sẽ không có lỗi.

Cách 2 chỉnh sửa lại:

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

Xét về độ tối ưu thì cách này vẫn chưa tối ưu vì hàm count ta để ngay trong thân vòng lặp. Như vậy mỗi lần lặp nó phải đếm tổng số phẩn tử của mảng. Mảng có 10 phần tư thì nó đếm 10 lần, 20 phần tử thì nó đếm 20 lần. Trong khi thực tế ta chỉ cần đếm 1 lần. vì thế cách sau sẽ tối ưu hơn.

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

Đối với mảng 2 chiều chúng ta phải dùng vòng lặp lồng 2 cấp để xử lý. Vấn đề này sẽ được đề cập trong bài xử lý mảng trong php.

5. Lời kết

Trong bài học này các bạn đã được học vòng lặp for trong php. Một vòng lặp rất thông dụng trong các ngôn ngữ. Trong thực tế vòng lặp được sử dụng rất nhiều nên các bạn phải nắm vững để có thể lựa chọn cái nào cho phù hợp. Bài tiếp theo chúng ta sẽ nghiên cứu vòng lặp while và do while.

Download - Giáo trình thuật toán

3 + 7 =

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.

2 + 1 =

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