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 ta cũng muốn chương trình chạy hết các dòng lệnh đó. Vì thế câu lệnh if else trong php ra đời giúp ta giải quyết vấn đề này.
Câu l ệnh if else php N ội dung • Câu l ệnh ều ki ện ? • Câu l ệnh ều ki ện if • Câu l ệnh If else php • K ết h ợp nhi ều câu l ệnh if else php • Câu l ệnh if else l ồng • L ời k ết Câu l ệnh ều ki ện ? Câu l ệnh ều ki ện if else cho phép ta thay đổi lu ồng c ch ươ n g trình d ựa m ột ều ki ện N ếu ều ki ện đú ng (true) ch ươn g trình s ẽđược th ự c hi ện, ng ược l ại n ếu ều ki ện đưa sai (false) n ội dung công vi ệc s ẽkhông th ự c hi ện Ví d ụ: để ki ểm tra m ột s ốlà s ốch ẵn hay s ốl ẻta th ự c hi ện b ước sau: B ướ c 1: L s ốc ần ki ểm tra B ướ c 2: Chia s ốđó cho để xác địn h s ốd B ướ c 3: Ki ểm tra s ốd ưđó có b ằng hay không, n ếu b ằng s ốch ẵn, ng ượ c l ại s ốl ẻ Để gi ải toán qua ngôn ng ữPHP tr ước tiên ta tìm hi ểu cú pháp câu ều ki ện if else php Câu l ệnh ều ki ện if Câu l ệnh if cho phép ta đưa quy ết địn h d ự a vi ệc ki ểm tra ều ki ện đú ng (true) hay sai (false) Cú pháp nh ưsau: if ($bieuthuc) { // Các Câu Lệnh } Ví dụ: Ch ương trình ki ểm tra m ột s ố ch ẵn hay l ẻ $so_can_kiem_tra = 12; $so_du = $so_can_kiem_tra % 2; if ($so_du == 0){ echo 'Số '.$so_can_kiem_tra.' Là Số Chẵn'; } Dòng thứ 1: Gán cho biến $so_can_kiem_tra giá trị = 12 Dòng thứ 2: Chia biến $so_can_kiem_tra / lấy số dư phép chia (toán tử % dùng để chia lấy số dư, bạn chưa biết toán tử vui lòng đọc lại toán tử biểu thức php) Dòng thứ 3: Kiểm tra số dư có hay không? Nếu không chạy dòng l ệnh bên thẻ mở { thẻ đóng } Nội dung câu lệnh bên xuất hình thống báo số chẵn Chạy chương trình kết xuất "Số 12 Là Số Chẵn" Bây giả sử ta đổi giá trị 12 thành 13 kết không xuất hình số 13 chia cho dư = 1, mà điều kiện để xuất câu thông báo số dư phải => không điều kiện nên trình biên dịch không chạy vào đoạn code bên lệnh if • Biểu Thức chứa cặp dấu ngoặ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 • Trong khối lệnh bên chứa nhiều lệnh phải có cặp ngoặc nhọn {} dùng để mở khối lệnh đóng khối lênh, trình biên dịch hiểu khối lệnh thực thi hết khối lệnh Ở ví dụ câu if có lệnh xu ất hình nên cặp ngoặc nhọn ta có không Ví dụ: Chương trình kiểm tra có phải năm nhuận hay không? (Năm nhuận năm chia hết cho 400 không chia hết cho 100 ) Bước 1: Nhập vào năm cần kiểm tra Bước 2: kiểm tra xem năm có chia hết cho 400 hay không Bước 3: Xuất hình điều kiện bước Bài giải: $nam = 1990; $kiem_tra = ($nam % == && $nam % 100 != || $nam % 400 == 0); if ($kiem_tra == true){ echo 'Năm ' $nam ' Là Năm Nhuận'; } Trong đoạn code biểu thức điều kiện khó nên s ẽ gi ải thích Để tính biểu thức trước tiên ta phải biết độ ưu tiên 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 phép tr ước, t ức là: ($nam % == && $nam % 100 != 0) (1990 % == && 19900 != 0) (false && true) => false Lúc biểu thức ($nam % == && $nam % 100 != || $nam % 400 == 0) thành: (false || $nam % 400 = 0) (false || false) => false Vậy kết biểu thức false Vì câu if điều kiện nhập vào phải true thực xuất hình, biến kiểm tra lại mang giá trị false nên dòng lệnh bên cặp ngoặc nhọn không thực => nên chương trình không in câu thông báo Câu l ệnh If else php Lệnh if dùng để kiểm tra điều kiện có hay không? Giả sử trường hợp ngược lại điều ki ện không thực điều ? để giải đáp câu hỏi ta nghiên cứu đến lệnh if else php if ($bieuthuc){ // Những Câu Lệnh 1; } else{ // Những câu lệnh 2; } Giải thích ý nghĩa: • Nếu $bieuthuc Những Câu Lệnh thực Những Câu Lệnh không thực • Ngược lại không cần kiểm tra thực Những Câu Lệnh Ví dụ: kiểm tra năm năm chẵn hay năm lẽ, xuất hình kết chẵn hay lẽ Bước 1: Nhập năm Bước 2: Chia cho lấy số dư Bước 3: Kiểm tra xem số dư có hay không? Nếu không năm chẵn, ngược lại năm lẽ $nam = 2014; $so_du = $nam % 2; if ($so_du == 0){ echo 'Năm ' $nam ' Là Năm Chẵn'; } else{ echo 'Năm ' $nam ' Là Năm Lẻ'; } Giải thích Bước 1: Nhập vào biến $nam giá trị 2014; Bước 2: Lấy số dư chia năm 2014 cho gán vào biến $so_du (lúc số dư = 0) Bước 3: Kiểm tra xem $so_du == hay không? số dư nên thõa mãn điều kiện nên chạy vào biểu thức khối ifvà xuất hình “Năm 2014 Là Năm Chẵn” Nó không đoạn code câu lệnh else Giả sử ta nhập $nam =2013 ta thực tương tự: Bước 1: Nhập vào biến $nam giá trị 2013 Bước 2: Lấy số dư chia năm 2014 cho gán vào biến $so_du (lúc số dư = 1) Bước 3: Kiểm tra xem $so_du == hay không? số dư khác nên bỏ qua khối lệnh if chạy vào khối lệnh else nên xuất hình “Năm 2013 Là N ăm Lẻ” K ết h ợp nhi ều câu l ệnh if else php Trong thực tế lúc có điều kiện mà có hàng chục điều kiện khác nhau, lúc ta phải kết hợp nhuần nhuyễn lệnh if else để xử lý Ví dụ: Nhập vào màu kiểm tra: • Nếu màu xanh xuất hình dòng chữ “Đây Là Màu Xanh” • Nếu màu đỏ xuất dòng chữ “Đây màu đỏ” • Nếu màu vàng xuất dòng chữ “Đây màu vàng” • Các màu lại xuất dòng chữ “Các màu khác” Hướng dẫn: Bước 1: Nhập màu Bước 2: Kiểm tra giá trị màu xem : • Nếu màu ‘màu xanh’ xuất hình “Đây màu xanh”, • Ngược lại ‘màu đỏ’ xuất hình “Đây màu đỏ”, • Ngược lại ‘màu vàng’ xuất hình ‘Đây màu vàng’, • Ngược lại không cần kiểm tra trương hợp cuối cùng, tr ưởng hợp nên ta xuất hình “Các màu khác” Bài giải: $mau = 'màu xanh'; if ($mau == 'màu xanh'){ echo 'Đây màu xanh'; } else if ($mau == 'màu đỏ') { echo "Đây màu đỏ"; } 10 else if ($mau == 'màu vàng'){ echo 'Đây màu vàng'; 11 12 13 14 } else{ echo 'Các màu khác'; } 15 Giải thích: Bước 1: Nhập màu xanh vào biến $mau Bước 2: Đế n dòng lệnh kiểm tra phải màu xanh không, ‘màu xanh’ nên bên kh ối lệnh if màu xanh chạy xuất hình dòng chữ “Đây màu xanh”, đồng th ời không chạy dòng lệnh bên Giả sử ta nhập biến $mau = ‘màu vàng’ bước chạy sau: Bước 1: Nhập màu vàng vào biến $mau Bước 2: Đến dòng lệnh kiểm tra có phải màu xanh không? Vì không nên bỏ qua khối l ệnh Bước 3: Đến dòng lệnh kiểm tra phải màu đỏ không? Vì không nên b ỏ qua khối l ệnh màu đỏ Bước 4: Đến dòng lệnh kiểm tra có phải màu vàng không, Vì nên bên khối màu vàng s ẽ chạy in hình chữ “Đây màu vàng” đồng thơi không chạy vào câu lệnh else bên điều kiện Giả sử ta nhập biến $mau = ‘màu nâu’ nào? Tương tự trình biên dịch kiểm tra lần lược màu xanh, đỏ, vàng không đúng, else cuối trường hợp l ại trường hợp nên không cần kiểm tra chạy thẳng vào nên hình in dòng ch ữ “Các màu khác” Note: Ta chuyển dòng code thành ngôn ngữ bình thường được, ví dụ nh toán s ẽ chuyển sang tiếng việt sau: Nếu màu xanh xuất hình dòng chữ “đây màu xanh”, ng ược lại n ếu màu đỏ xuất hình dòng chữ “Đây màu đỏ”, ngược lại màu vàng xuất hình dòng chữ “Đây màu vàng”, trường hợp xuất hình dòng chữ “Các màu khác” Câu l ệnh if else l ồng Đây phần khó tất vấn đề câu lệnh if else php, bên ta ch ạy câu lệnh if else tầng, phần ta nghiên cứu đến if else nhiều tầng lồng nhau, có nghĩa câu if nằm câu if cha if ($bieu_thuc_cha) { // Các câu lệnh thuộc biểu thức cha; if ($bieu_thuc_con){ // Các câu lệnh thuộc biểu thức con; } } Ví dụ: Kiểm tra sô nhập vào có ph ải s ố ch ẵn hay không? N ếu s ố ch ẵn ki ểm tra ti ếp s ố có l ớn h ơn100 hay không, n ếu l ớn h ơn 100 xu ất hình “S ố ch ẵn l ớn h ơn 100 ″, ng ược l ại xuất hình “S ố ch ẵn nh ỏ h ơn 100 ″ Bước 1: Nhập vào số Bước 2: Kiểm tra có phải s ố ch ẵn hay không, n ếu s ố ch ẵn qua b ước Bước 3: Kiểm tra s ố l ớn h ơn 100 hay không, n ếu l ớn h ơn xu ất hình “S ố ch ẵn l ớn h ơn 100″, ng ược l ại xu ất hình “S ố ch ẵn nh ỏ h ơn 100 ″ Bài giải: $so = 80; // Nhập vào số 80 if ($so % == 0) // Nếu số dư chia cho = o, tức số chẵn ta chạy tiếp câu l { if ($so > 100){ // Nếu số lớn 100 chạy lệnh bên echo 'Số chẵn lớn 100'; } else if ($so < 100){ // Ngược lại số nhỏ 100 chạy lệnh bên echo 'Số chẵn nhỏ 100'; } 10 } Qua phần ghi giải thích cho bạn xử lý nên có l ẽ không gi ải thích thêm cho phần tương tự phần trên, khác nhiều câu l ệnh if lồng N ếu b ạn v ẫn ch ưa hi ểu qua ph ần t ập có l ời gi ải cu ối b ạn đọc k ỹ gõ theo xem kết hình dung ... Câu l ệnh if else l ồng Đây phần khó tất vấn đề câu lệnh if else php, bên ta ch ạy câu lệnh if else tầng, phần ta nghiên cứu đến if else nhiều tầng lồng nhau, có nghĩa câu if nằm câu if cha if. .. // Những Câu Lệnh 1; } else{ // Những câu lệnh 2; } Giải thích ý nghĩa: • Nếu $bieuthuc Những Câu Lệnh thực Những Câu Lệnh không thực • Ngược lại không cần kiểm tra thực Những Câu Lệnh Ví dụ:... php Lệnh if dùng để kiểm tra điều kiện có hay không? Giả sử trường hợp ngược lại điều ki ện không thực điều ? để giải đáp câu hỏi ta nghiên cứu đến lệnh if else php if ($bieuthuc){ // Những Câu