Các vấn đề ta đề cập từ đầu bài cho đến nay. Chỉ cho phép chúng ta viết chương trình chạy theo một trình tự từ trên xuống. và không bỏ qua một đoạn code nào ( trừ phần ghi chú ).
Tuy nhiên trong thực tế không phải lúc nào chúng ta cũng muốn chương trình chạy hết các dòng lệnh đó. Vì vậy câu lệnh if else trong php ra đời giúp ta giải quyết vấn đề này.
Nội dung
Bài 05: Câu lệnh if else trong php
Nội dung chính:
1. Câu lệnh điều kiện là gì ?
Câu lệnh điều kiện if else cho phép chúng ta thay đổi luồng của chương trình dựa trên một điều kiện nào đó. Nếu điều kiện là đúng (true) thì chương trình sẽ thực hiện. Ngược lại nếu điều kiện đưa ra là sai (false) nội dung công việc đó sẽ không được thực hiện.
Ví dụ: kiểm tra một số là số chẵn hay số lẻ ta thực hiện các bước sau:
1: Lấy số cần kiểm tra.
2: Sau đó chia số đó cho 2 để xác định số dư.
3: Cuối cùng kiểm tra số dư đó có bằng 0 hay không, nếu bằng 0 thì đó là số chẵn, ngược lại đó là số lẻ.
Để giải bài toán này bằng ngôn ngữ PHP. Thì trước tiên chúng ta tìm hiểu cú pháp câu điều kiện if else trong php đã nhé.
2. Câu lệnh điều kiện if
Câu lệnh if cho phép chúng ta đưa ra các quyết định dựa trên việc kiểm tra điều kiện nào đó đúng (true) hay sai (false). Cú pháp như sau:
1: Gán cho biến $so_can_kiem_tra giá trị = 12
.
2: Chia biến $so_can_kiem_tra / 2
và lấy số dư của phép chia. (toán tử % được dùng để chia lấy số dư. Nếu bạn chưa biết toán tử này vui lòng đọc lại bài 4.
3: Chúng ta kiểm tra số dư có bằng 0 hay không. Nếu bằng không thì sẽ chạy dòng lệnh bên trong thẻ mở {
và thẻ đóng }
. Nên nội dung câu lệnh bên trong sẽ xuất ra màn hình thống báo là số chẵn.
Chạy chương trình này kết quả sẽ xuất ra là “Số 12 Là Số Chẵn”. Nếu bây giờ giả sử ta đổi giá trị 12 thành 13 thì kết quả sẽ không xuất ra màn hình vì số 13 chia cho 2 sẽ dư = 1 và điều kiện để xuất ra câu thông báo là số dư phải bằng 0. => không đúng điều kiện thì trình biên dịch sẽ không chạy vào đoạn code bên trong lệnh if.
Chú ý:
- Biểu Thức chứa trong cặp dấu ngoặc
()
chính là các biêu thức quan hệ. - Toán tử dấu chấm
.
dùng để nối hai chuỗi lại với nhau. - Trong một khối lệnh nếu bên trong chứa nhiều hơn 2 lệnh thì phải có cặp ngoặc nhọn
{}
. Được dùng để mở khối lệnh và đóng khối lênh. Vậy trình biên dịch sẽ được hiểu đây là một khối lệnh. và nó sẽ thực thi hết khối lệnh này. Ở ví dụ trên trong câu if chỉ có một lệnh xuất ra màn hình. Nên cặp ngoặc nhọn này ta có thể có hoặc không có cũng không sao.
Ví dụ: Chương trình kiểm tra có phải năm nhuận hay không?
(Năm nhuận là năm chia hết cho 4 hoặc 400 nhưng không chia hết cho 100).
1: Nhập vào năm cần kiểm tra.
2: Sau đó kiểm tra xem năm đó có chia hết cho 4 hoặc là 400 hay không.
3: Xuất ra màn hình nếu điều kiện ở bước 2 là đúng.
Bài giải:
Bài học rút ra
Trong đoạn code trên thì biểu thức điều kiện là khó nhất nên mình sẽ giải thích nó. Để tính được biểu thức này trước tiên ta phải biết độ ưu tiên trong toán tử luận lý.
Theo quy luật : NOT -> AND -> OR
.
Trong biểu thức ta không thấy toán tử NOT. Có toán tử AND nên ta thực hiện phép này trước.
Tức là:
($nam % 4 == 0 && $nam % 100 != 0)
tương đương (1990 % 4 == 0 && 19900 != 0) tương đương
(false && true) => false
.
Lúc này biểu thức ($nam % 4 == 0 && $nam % 100 != 0 || $nam % 400 == 0)
sẽ thành:
(false || $nam % 400 = 0)
<=>(false || false) => false
.
Vậy kết quả của biểu thức là false. Vì trong câu if điều kiện nhập vào là phải true thì mới thực hiện xuất ra màn hình.Tất cả nhưng biến kiểm tra lại mang giá trị false nên những dòng lệnh bên trong cặp ngoặc nhọn không thể thực hiện => nên chương trình không in ra câu thông báo.
3. Câu lệnh If else trong php
Lệnh if để kiểm tra một điều kiện có đúng hay không?
Giả sử trường hợp ngược lại điều kiện không đúng thì sẽ thực hiện điều gì?
Để giải câu hỏi này ta sẽ nghiên cứu đến lệnh if else trong php.
Giải thích ý nghĩa:
- Nếu
$bieuthuc
đúng thì Những Câu Lệnh 1 sẽ được thực hiện. Những Câu Lệnh 2 sẽ không thực hiện. - Ngược lại thì nó sẽ không cần kiểm tra nữa và thực hiện Những Câu Lệnh 2.
Ví dụ: kiểm tra năm nay là năm chẵn hay năm lẽ, xuất ra màn hình kết quả chẵn hay lẽ.
1: Nhập năm.
2: Chia cho 2 và lấy số dư.
3: Kiểm tra xem số dư có bằng 0 hay không?. Nếu bằng không là năm chẵn, ngược lại là năm lẻ.
Giải thích các bước
1: Nhập vào biến $nam
giá trị 2014
; .
2: Lấy số dư khi chia năm 2014 cho 2 và gán vào biến $so_du
(lsố dư = 0).
3: Kiểm tra xem $so_du == 0
hay không?. Số dư bằng 0 nên thõa mãn điều kiện vì vậy nó chạy vào biểu thức trong khối if. và xuất ra màn hình “Năm 2014 Là Năm Chẵn”. Nó sẽ không đoạn code ở bên trong câu lệnh else.
Giả sử ta nhập $nam =2013
ta thực hiện các bước tương tự:
1: Nhập vào biến $nam giá trị 2013.
2: Lấy số dư khi chia năm 2014 cho 2 và gán vào biến $so_du
(lúc này số dư = 1).
3: Kiểm tra xem $so_du == 0
hay không?. vì số dư bằng 1 khác 0 nên nó sẽ bỏ qua khối lệnh trong if và chạy vào khối lệnh trong else. nên xuất ra màn hình “Năm 2013 Là Năm Lẻ”.
4. Kết hợp nhiều câu lệnh if else trong php
Trong thực tế không phải lúc nào cũng chỉ có 2 điều kiện mà sẽ có hàng chục điều kiện khác nhau. Lúc này chúng ta phải kết hợp nhuần nhuyễn giữa 2 lệnh if và else để xử lý.
Ví dụ: Nhập vào một màu và kiểm tra:
- Nếu màu nhập vào là màu xanh thì xuất ra màn hình dòng chữ “Đây Là Màu Xanh”.
- Nếu màu nhập vào là màu đỏ thì xuất ra dòng chữ “Đây là màu đỏ”.
- Nếu màu nhập vào là màu vàng thì xuất ra dòng chữ “Đây là màu vàng”.
Hướng dẫn:
Bước 1: Nhập màu
Bước 2: Kiểm tra giá trị của màu xem :
– Nếu màu = ‘màu xanh’ thì xuất ra màn hình “Đây là màu xanh”,
– Ngược lại nếu = ‘màu đỏ’ thì xuất ra màn hình “Đây là màu đỏ”,
– Ngược lại nếu = ‘màu vàng’ thì xuất ra màn hình ‘Đây là màu vàng’,
– Ngược lại không cần kiểm tra gì nữa vì là trương hợp cuối cùng, không phải là các trưởng hợp ở trên nên ta xuất ra màn hình “Các màu khác”.
Bài giải:
Giải thích các bước:
1: Nhập màu xanh vào biến $mau
.
2: Đến dòng lệnh kiểm tra có phải màu xanh hay không. Vì nó = ‘màu xanh’ nên bên trong khối lệnh if của màu xanh sẽ được chạy. và xuất ra ngoài màn hình dòng chữ “Đây là màu xanh”. Đồng thời nó không chạy các dòng lệnh ở bên dưới nữa.
Giả sử ta nhập biến $mau = ‘màu vàng’
thì các bước chạy sẽ như sau:
1: Nhập màu vàng vào biến $mau
2: Đến dòng lệnh kiểm tra có phải màu xanh haykhông? Vì không đúng nên ta bỏ qua khối lệnh này
3: Đến dòng lệnh kiểm tra phải màu đỏ hay không? Vì không đúng nên ta cũng bỏ qua khối lệnh màu đỏ này
4: Đến dòng lệnh kiểm tra có phải màu vàng hay không, Vì đúng nên bên trong khối màu vàng sẽ được chạy và in ra màn hình dòng chữ “ ở trên Đây là màu vàng”và tương đương sẽ không chạy vào câu lệnh else ở bên dưới vì đã đúng điều kiện
Giả sử ta nhập biến $mau = ‘màu nâu’
thì như thế nào? Tương tự trình biên dịch sẽ phải kiểm tra lần lược các màu xanh, đỏ, vàng đều không đúng, ở cái else cuối cùng là trường hợp còn lại của các trường hợp trên nên nó không cần kiểm tra và chạy thẳng vào luôn nên màn hình sẽ in ra dòng chữ “Các màu khác”.
Chú ý:
Note: chúng Ta có thể chuyển dòng code thành ngôn ngữ bình thường được.
Ví dụ như bài toán trên tôi sẽ chuyển sang tiếng việt như sau:
Nếu màu xanh thì ta xuất ra màn hình dòng chữ “đây là màu xanh”. Ngược lại nếu màu đỏ thì ta xuất ra màn hình dòng chữ “Đây là màu đỏ”. Ngược lại nếu màu vàng thì ta xuất ra màn hình dòng chữ “Đây là màu vàng”.
5. Câu lệnh if else lồng nhau
Đây là một phần khó nhất trong tất cả các vấn đề của câu lệnh if else trong PHP. Ở bên trên ta chỉ chạy câu lệnh if else một tầng. Phần này ta sẽ nghiên cứu đến if else nhiều tầng lồng nhau, Nghĩa là câu if con nằm trong câu if cha.
Ví dụ: Kiểm tra sô nhập vào có phải là số chẵn hay không?. Nếu nó là số chẵn thì kiểm tra tiếp số đó có lớn hơn 100 hay không. Nếu lớn hơn 100 thì xuất ra màn hình “Số chẵn và lớn hơn 100″. Ngược lại xuất ra màn hình “Số chẵn và nhỏ hơn 100″.
1: Nhập vào một số.
2: Kiểm tra có phải số chẵn hay không, nếu là số chẵn thì qua bước 3.
3: Kiểm tra số đó có lớn hơn 100 hay không. Nếu lớn hơn thì xuất ra màn hình “Số chẵn và lớn hơn 100″. Ngược lại xuất ra màn hình “Số chẵn và nhỏ hơn 100″.
Bài giải:
Qua phần ghi chú giải thích cho các bạn nó xử lý như thế nào rồi. Chỉ khác nhiều câu lệnh if lồng nhau.
0 Lời bình