Học Pascal/Câu lệnh rẽ nhánh

Tủ sách mở Wikibooks
Buớc tưới chuyển hướng Bước tới tìm kiếm

If...Then...else...;[sửa]

Dạng thiếu[sửa]

IF <điu kin> THEN <câu lnh>;
{NẾU <điều kiện đúng> THÌ thực hiện <câu lệnh >;}

Trong đó:

  • <điều kiện> là một biểu thức logic.
  • <câu lệnh> là một câu lệnh đơn hoặc câu lệnh kép.

VD:

Code Kết quả, giải thích
If 1+1>2 then write('Hôm nay mặt trời mọc đằng Tây!');

Kết quả:
Giải thích:

Do 1+1=2 → vì 2 không lớn hơn 2 nên không thoả điều kiện. Do đó, không có câu lệnh nào được thực hiện.
m:=1;
if m=1 then write('Tháng 1 có 31 ngày');

Kết quả:

Tháng 1 có 31 ngày

Giải thích:

Do m thật sự bằng 1 → Điều kiện thoả mãn nên câu lệnh sau THEN được thực hiện.

Dạng đủ[sửa]

IF <điu kin> THEN <câu lnh 1> ELSE <câu lnh 2>;
{NẾU <điều kiện đúng> THÌ thực hiện <câu lệnh 1> NẾU KHÔNG THÌ thực hiện <câu lệnh 2>;}

Trong đó:

  • <điều kiện> là một biểu thức logic.
  • <câu lệnh 1>, <câu lệnh 2> là một câu lệnh đơn hoặc câu lệnh kép.

Case...Of...End;[sửa]

Có hai dạng cấu trúc:

  • Dạng 1:
CASE <tên biến> OF
     <(dãy) giá tr 1> : <câu lnh 1>;
     <(dãy) giá tr 2> : <câu lnh 2>;
     ...
     <(dãy) giá tr N> : <câu lnh N>;
END;
  • Dạng 2:
CASE <tên biến> OF
     <(dãy) giá tr 1> : <câu lnh 1>;
     <(dãy) giá tr 2> : <câu lnh 2>;
     ...
     <(dãy) giá tr N> : <câu lnh N>;
     ELSE <câu lnh>
END;

Lưu ý: phải có câu lệnh END; kết thúc (không có BEGIN).

VD: Xét xem tháng ... năm ... có bao nhiêu ngày.

CASE thang OF
     1,3,5,7,8,10,12 : ngay:=31;
     4,6,9,11        : ngay:=30;
     2               : if ((nam mod 100=0) and (nam mod 400=0)) or (nam mod 4=0) then ngay:=29 else ngay:=28;
END;
writeln('Tháng ',thang,' năm ',nam,' có ',ngay,' ngày.');
Code Điều kiện, kết quả, giải thích
CASE thang OF
     1,3,5,7,8,10,12 : ngay:=31;
     4,6,9,11        : ngay:=30;
     2               : if ((nam mod 100=0) and (nam mod 400=0)) or (nam mod 4=0) then ngay:=29 else ngay:=28;
END;
writeln('Tháng ',thang,' năm ',nam,' có ',ngay,' ngày.');
Điều kiện

Nếu biến thang có giá trị là 1; 3; 5; 7; 8; 10 hoặc 12 thì biến ngay sẽ được gán cho giá trị 31.

Nếu biến thang có giá trị là 4; 6; 9 hoặc 11 thì biến ngay sẽ được gán cho giá trị 30.

Nếu biến thang có giá trị là 2 thì tùy theo kết quả:

  • Nếu (nam mod 100=0) và (nam mod 400=0) hoặc (nam mod 4=0) thì biến ngay được gán giá trị 29
  • Trường hợp còn lại biến ngay được gán giá trị 28

Kết quả

Hiện ra màn hình tùy theo giá trị mà biến được gán.

Học Pascal/Mảng-->