Bài 7: Các câu lệnh gán và rẽ nhánh trong PHP

OK, bây giờ chúng ta chuẩn bị làm việc với các câu lệnh "xương sống" của một ngôn ngữ lập trình.
Nếu chúng ta nào đã từng học qua một ngôn ngữ lập trình nào đó, thì các bạn có thể đọc lướt qua phần này. Còn nếu bây giờ  ta mới bắt đầu tiếp xúc với một ngôn ngữ lập trình thì... hãy chuẩn bị tinh thần đi

Các câu lệnh trong ngôn ngữ lập trình

Để lập trình giải một bài toán nào đó, chúng ta phải sử dụng các câu lệnh sau:
1. Lệnh gán: được sử dụng để đặt một giá trị vào một biến nào đó.
2. Lệnh rẽ nhánh: Được sử dụng để xác định look chương trình sẽ thực hiện công việc gì trong điều kiện ra sao
3. Lệnh lặp: Cho phép chương trình của ta tự động lặp lại các thao tác nào đó
Quá trình tạo ra các bước để thực hiện một bài toán nào đó, gọi là quá trình tạo ra thuật giải.

Ví dụ: Hãy tưởng tượng bạn đang ... nhậu

Bước 0: chưa có ai say rượu
Bước 1: Kêu chủ quán cho một chai "cuốc lủi" (tạm thời là lệnh gán)
Bước 2: Khi còn chưa hết chai thì nhày sang bước 3:
Bước 3: Mỗi thằng một chén, trăm phần trăm
Bước 4: Nếu thằng nào xỉn, thì loại nó ra khỏi trận chiến (lệnh rẽ nhánh)
Bước 5: Nếu tất cả đều xỉn: tàn cuộc (lệnh rẽ nhánh), còn nếu không thì tiếp tục
Bước 6: Nếu hết một chai thì nhảy về bước 1 (Lệnh lặp)

OK, đến giờ thì chắc bạn đã hiểu qua một chút. Bây giờ chúng ta sẽ ứng dụng chúng vào PHP. Phần về các câu lệnh cơ bản trong PHP được chia làm 2 bài là Các câu lệnh rẽ nhánh và các câu lệnh lặp. Bài này tập trung vào việc xử lý câu lệnh gán và rẽ nhánh.

1. Lệnh gán

Lệnh này đã được học ở bài trước:
Cú pháp:
PHP Code:
$ten_bien = gia_tri;
Ví dụ:

PHP Code:
$ngay_sinh="1/4/1980";
$que_quan="Thanh Hoa";
$luong=300000;
2. Các câu lệnh rẽ nhánh
Trong PHP có 2 dạng rẽ nhánh: rẽ hai nhánh (if) và rẽ  rất nhiều nhánh.

Lệnh rẽ nhánh là một trong những câu lệnh quan trọng nhất của mọi các ngôn ngữ lập trình. Nó cho phép ta thực thi một đoạn mã khi mà điều kiện chỉ định là đúng.

Trong PHP, lệnh rẽ nhánh có dạng sau:

PHP Code:
if (điều kiện)
{
công việc cần làm
}
Ví dụ:
if ($name="Sinh")
{
     echo ("Good morning, my boss");
}
Nếu khối câu lệnh cần làm chỉ bao gồm duy nhất một dòng lệnh, ta không phải là không bỏ cặp dấu  :

PHP Code:
if ($name="Sinh")
     echo ("Good morning, my boss");
Nhưng nếu đủ thứ hơn một dòng lệnh, ta phải đưa chúng vào cặp dấu ngoặc :

if ($name=="Sinh")
{
     echo ("Good morning, my boss");
     echo ("Have a romantic day!");
}
Đoạn lệnh trên sẽ kiểm tra nếu điều kiện biến $name = "Sinh" thì nó sẽ hiển thị lời chào. Còn nếu không thì nó không làm gì cả!

Điều kiện đặt vào không phải là không là đúng,  không phải là không là sai,  không phải là không là tổng hợp của nhiều điều kiện. Hãy quan sát  example sau:

PHP Code:
if ("false" )
     echo ("Khong co gi ca");

if (($name=="sinh") && ($pass=="test"))
     echo ($name. "đã nhập đúng password");
Đoạn lệnh trên không phải là không viết tương đương với:

PHP Code:
if ($name=="sinh")
{
      if ($pass=="test")
     echo ($name. "đã nhập đúng password");
}
Như  bạn thấy tại trên, trong một câu lệnh, chúng ta không phải là không chèn nhiều đoạn lệnh khác, người ta gọi đó là cấu trúc khối, tức là trong một khối lệnh,  không phải là không có chứa đủ thứ khối lệnh con khác. Nếu ta phải đọc mã nguồn của người khác, hi vọng ta không bị hoa mắt vì hàng chục khối lệnh chen chúc vào nhau như vậy.

Chúng ta không phải là không sử dụng các toán tử &&, || hay xor để kết nối các điều kiện với nhau như  bạn thấy tại trên

Câu lệnh rẽ nhánh đầy đủ:

Nếu điều kiện kiểm tra trả về false (sai), PHP cho phép chúng ta chỉ định thực thi một khối mã lệnh khác bằng từ khoá else
Ví dụ:
PHP Code:
if (($name=="sinh") && ($pass=="test"))
{
     echo ("Good day, ".$name);
}
else
{
     echo {"Sai mat khau!")
}
Chú ý đến một ngoại lệ sau: Trước từ khoá else không bao giờ có dấu chấm phẩy (.

Lệnh rẽ  rất nhiều nhánh:

Với câu lệnh if, PHP cho phép chúng ta rẽ  rất nhiều nhánh thông qua từ khoá elseif:

PHP Code:
if (dieu_kien1)
{
     doan_lenh_1;
}
elseif (dieu_kien_2)
{
     doan_lenh_2
}
elseif (dieu_kien_3)
} // bao nhiêu từ khoá elseif cũng được
else
{
     doan_lenh_n
}
Ví dụ:

PHP Code:
if ($thu==2)
{
     echo ("Chao co, van, su, ly");
}
elseif ($thu==3)
{
     echo (" Hoa, Sinh, Dia, GDCD");
}
elseif ($thu==4)
{
     echo ("KTCN, Van, Toan, Tieng Anh");
}
elseif ($thu==5)
{
     echo (" Hoa, Toan, Van, Tin");
}
elseif ($thu==6)
{
     echo ("Toan, Van, Anh, Sinh hoat");
}
else
{
     echo ("Duoc di choi");
}
Trong mẫu trên, chúng ta đã lặp đi lặp lại thao tác kiểm tra giá trị của biến $thu, mặc dù nó không thay đổi qua các dòng. Để khắc phục sự dài dòng này, PHP cho phép ta sử dụng câu lệnh switch. Câu lệnh này sẽ được sử dụng để kiểm tra khi muốn quan sát xét qua rất nhiều giá trị của một biến:

PHP Code:
switch ($bien){
Case gia_tri 1:
     doan_lenh_1;
Case gia_tri 2:
     doan_lenh_2;
Case gia_tri n:
     doan_lenh_n;
default:
     doan_lenh_khac;
}
Ví dụ:

PHP Code:
switch ($thu){
case 2:
     echo ("Chao co, van, su, ly");
case 3:
     echo (" Hoa, Sinh, Dia, GDCD");
case 4:
     echo ("KTCN, Van, Toan, Tieng Anh");
case 5:
     echo (" Hoa, Toan, Van, Tin");
case 6:
     echo ("Toan, Van, Anh, Sinh hoat");
default:
     echo ("Duoc di choi");
}
Câu lệnh switch sẽ ước lượng giá trị của biến $thu, và so sánh nó với giá trị của mệnh đề case. Khi một giá trị hợp lệ được tìm thấy, nó sẽ thực hiện câu lệnh tương ứng với giá trị đó. Còn nếu không, nó sẽ tự động thực hiện câu lệnh trong mệnh đề default. Hãy chú ý rằng mệnh đề defaul là tuỳ chọn ( bạn  không phải là không có nó hoặc không cần nó)
Share on Google Plus

About Unknown

This is a short description in the author block about the author. You edit it by entering text in the "Biographical Info" field in the user admin panel.
    Blogger Comment
    Facebook Comment

0 nhận xét:

Đăng nhận xét