Trong Pascal, câu lệnh điều kiện được viết như sau:
Dạng thiếu:
If Then ;
Trong đó là biểu thức hoặc biến có kiểu dữ liệu là Boolean. Khi
nhận giá trị là True thì
sẽ được thực hiện. Khi
nhận giá trị là False thì không làm gì cả. Ví dụ:
If [x mod 2] = 0 Then Writeln[x,' la so chan'];
Chúng ta hãy thử xem một ví dụ hoàn chỉnh:
Program ifChecking;
Var a : Integer;
Begin
a := 10;
If a < 20 Then { Nếu a bé hơn 20 thì thông báo: }
Writeln['a be hon 20 ' ];
Writeln['gia tri cua a la: ', a];
End.
Khi đoạn code trên được biên dịch và thực thi, nó in ra kết quả như sau:
a be hon 20
gia tri cua a la: 10
Dạng đầy đủ:
If Then
Else
;
Tương tự như dạng thiếu tuy nhiên khi nhận giá trị là False thì
sẽ được thực thi thay vì không làm gì cả như dạng thiếu.
Ví dụ:
If [x mod 2] = 0 Then
Writeln[x,' la so chan']
Else
Writeln[x,' la so le'];
Lưu ý dấu ;
và từ
khoá Else
Câu lệnh đứng trước Else thì không được có dấu chấm phẩy ;
vì Pascal hiểu là gặp dấu chấm phẩy ;
thì kết thúc luôn câu lệnh If.
Chúng ta hãy thử xem một ví dụ hoàn chỉnh:
Program ifelseChecking;
Var a : Integer;
Begin
a := 100;
If a < 20 Then { Nếu a bé hơn 20 thì thông báo: }
Writeln['a be hon 20']
Else [* Nếu điều kiện sai thì in ra: *]
Writeln['a khong lon hon 20' ];
writeln['gia tri cua a la: ', a];
end.
Khi đoạn code trên được biên dịch và thực thi, nó in ra kết quả như sau:
a khong be hon 20
gia tri cua a la: 100
Và đương nhiên câu lệnh sau Then và sau Else cũng có thể là một khối lệnh được bao bởi cặp Begin và End hoặc thậm chí là một câu lệnh If khác.
Program ifelse_ifelseChecking;
Var a : Integer;
Begin
a := 100;
If a = 10 Then
Writeln['gia tri cua a = 10']
Else If a = 20 Then
Writeln['gia tri cua a = 20']
Else If a = 30 Then
Writeln['gia tri cua a = 30']
Else
Begin
Writeln['khong co gia tri nao phu hop'];
Writeln['chinh xac gia tri cua a = ', a];
End;
End.
Khi đoạn code trên được biên dịch và thực thi, nó in ra kết quả như sau:
khong co gia tri nao phu hop
chinh xac gia tri cua a = 100
Trong bài này chúng ta sẽ học lệnh rẻ nhánh if .. then trong Pascal, đây là lệnh dùng để đổi hướng chương trình dựa vào một điều kiện nào đó. Kể từ bài lệnh if
này ta sẽ bắt đầu học những kiến thức nâng cao hơn.
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.
Trước khi học bài này bạn cần phải hiểu được khái niệm về giá trị của biểu thức. Chúng ta có hai giá trị đó là đúng [TRUE] - sai [FALSE], và mỗi biểu thức đặt trong điều kiện if
phải trả về một trong hai giá trị này, vì vậy ta phải sử dụng các
toán tử mà mình đã giới thiệu ở bài trước.
I. Lệnh if .. then trong Pascal
Giả sử bạn cần viết một chương trình tính tổng của hai số được nhập vào từ bàn phím, sau đó in ra màn hình tổng đó là số chẵn hay số lẻ. Lúc này bạn phải sử dụng lệnh if.
Cú pháp như sau:
Bài viết này được đăng tại [free tuts .net]
if [condition] then begin // statement end;
Trong đó:
condition
là điều kiện xảy rastatement
là đoạn code sẽ được chạy nếu condition có giá trị TRUE, ngược lại nếu giá trị FALSE thì sẽ bỏ qua.
Ví dụ: Viết chương trình kiểm tra một số có phải là số chẵn hay không
program IfThenPascal; var a : integer; begin writeln['HOC PASCAL TAI FREETUTS.NET']; writeln['Nhap vao so can kiem tra']; readln[a]; if [ a mod 2 = 0 ] then begin writeln[a, ' la so chan']; end; readln; end.
Chạy chương trình bnạ sẽ thu được kết quả như sau:
Lưu ý: Nếu bên trong begin và end chỉ có một lệnh duy nhất thì ta có thể bỏ begin và end. Như ví dụ trên ta có thể viết lại như sau:
begin writeln['HOC PASCAL TAI FREETUTS.NET']; writeln['Nhap vao so can kiem tra']; readln[a]; if [ a mod 2 = 0 ] then writeln[a, ' la so chan']; readln; end.
II. Lệnh if .. then .. else trong Pascal
Ở lệnh if .. then
ta chỉ cho chương trình chạy được một nhánh duy nhất, nhưng thực tế thì ta cần rẻ rất nhiều nhánh nên lúc này phải sử dụng lệnh if .. then .. else
.
Giả sử mình cần viết một chương trình kiểm tra một số xem nó số chẵn hay số lẻ, sau đó in ra màn hình là số chẵn hoặc số lẻ.
Để làm bài này thì trước tiên hãy tham khảo cấu trúc ngữ pháp của lệnh if .. then .. else đã nhé.
if [condiiton] then begin // statement1 end else begin // statement2 end;
Bạn cần chú ý ở khối lệnh begin .. end
bên trong lệnh then
không có dấu chấm phẩy nhé.
Ok, bây giờ mình sẽ giải bài toán trên như sau:
program IfThenPascal; var a : integer; begin writeln['HOC PASCAL TAI FREETUTS.NET']; writeln['Nhap vao so can kiem tra']; readln[a]; if [ a mod 2 = 0 ] then begin writeln[a, ' la so chan']; end else begin writeln[a, ' la so le']; end; readln; end.
Kết quả:
Ở bài giải trên mình đã sử dụng khối lênh begin và end, tuy nhiên điều đó là dư thừa bởi đoạn code bên trong chỉ có một lệnh duy nhất. Ta có thể viết lại như sau:
if [ a mod 2 = 0 ] then writeln[a, ' la so chan']; else writeln[a, ' la so le'];
III. Lệnh if .. then .. else lồng nhau trong Pascal
Lệnh lồng nhau tức là bên trong một lệnh có chứa nhiêu lệnh con. Điều này có nghĩa trong chương trình có sử dụng các lệnh if .. then, và bên trong đoạn code xử lý lại chứ thêm những đoạn code if .. then khác, ta gọi là lồng nhau.
if [condition1] then if [condition2] then // statement
Nghe có ve khó phải không nào? Thực ra nó cũng rất dễ nếu như bạn biên dịch tuân theo thứ tự từ trên xuống và từ trái qua phải. Nếu điều kiện thỏa thì chạy code bên trong điều kiện đó, cứ như vậy cho đến hết tất cả các lệnh if lồng nhau.
Ví dụ: Viết chương trình kiểm tra một số, nếu là số chẵn thì kiểm tra số đó lớn hơn 100 không, nếu số lẻ thì kiểm số đó lớn hơn 20 không.
program IfThenPascal; var a : integer; begin writeln['HOC PASCAL TAI FREETUTS.NET']; writeln['Nhap vao so can kiem tra']; readln[a]; if [ a mod 2 = 0 ] then begin writeln[a, ' la so chan']; if [a > 100] then writeln[a, ' lon hon 100']; end else begin writeln[a, ' la so le']; if [a > 20] then writeln[a, ' lon hon 20']; end; readln; end.
Chạy lên và nhập số 25 thì ta có được kết quả sau:
Trên là những kiến thức cơ bản về cách sử dụng lệnh if then trong Pascal, hy vọng qua bài này bạn sẽ hiểu được thế nào là lệnh rẻ nhánh, để từ đó có thể học thêm những lệnh khác.