Câu
lệnh điều kiện là gì ?
Các câu lệnh điều kiện cho phép chúng ta thay đổi luồng
chương trình. Dựa trên một điều kiện nào đó, một câu lệnh hay một chuỗi các câu
lệnh có thể được thực hiện hoặc không.
Hầu hết các ngôn ngữ lập trình đều sử dụng lệnh if để
đưa ra điều kiện. Nguyên tắc thực hiện như sau nếu điều kiện đưa ra là đúng
(true), chương trình sẽ thực hiện một công việc nào đó, nếu điều kiện đưa ra là
sai (false), chương trình sẽ thực hiện một công việc khác.
Ví dụ:
Để xác
định một số là số chẳn hay số lẻ, ta thực hiện như sau:
1. Nhập
vào một số.
2. Chia
số đó cho 2 để xác định số dư.
3. Nếu
số dư của phép chia là 0, đó là số “Chẵn”.
HOẶC
Nếu số
dư của phép chia khác 0, đó là số “Lẻ”.
Bước 2 trong giải thuật trên kiểm tra phần dư của số
đó khi chia cho 2 có bằng 0 không? Nếu đúng, ta thực hiện việc hiển thị thông
báo đó là số chẵn. Nếu số dư đó khác 0, ta thực hiện việc hiển thị thông báo đó
là số lẻ.
Trong
C một điều kiện được coi là đúng (true) khi nó có giá trị khác 0, là sai
(false) khi nó có giá trị bằng 0.
C cung
cấp hai dạng câu lệnh lựa chọn:
Câu lệnh
if
Câu lệnh
switch
Câu
lệnh ‘if’
Câu lệnh
if cho phép ta đưa ra các quyết định dựa trên việc kiểm tra một điều kiện
nào đó là đúng (true) hay sai (false).
Các điều
kiện gồm các toán tử so sánh và logic mà chúng ta đã thảo luận ở bài 4.
Dạng tổng
quát của câu lệnh if:
if (biểu thức)
{
Các câu
lệnh;
}
Biểu thức
phải luôn được đặt trong cặp dấu ngoặc (). Mệnh đề theo sau từ khoá if
là một điều kiện (hoặc một biểu thức điều kiện) cần được kiểm tra. Tiếp đến là
một lệnh hay một tập các lệnh sẽ được thực thi khi điều kiện (hoặc biểu thức điều
kiện) có kết quả true.
Ví dụ:
#include
<stdio.h>
void
main() {
int x, y;
char a = ‘y’;
x = y = 0;
if (a == ‘y’) {
x += 5;
printf(“The numbers are %d
and \t%d”, x, y);
}
}
Kết quả
của chương trình như sau:
The numbers are 5 and 0
Có kết
quả này là do biến a đã được gán giá trị 'y'.
Chú ý rằng, khối lệnh sau lệnh if được
đặt trong cặp ngoặc nhọn {}. Khi có nhiều lệnh cần được thực hiện, các câu lệnh
đó được coi như một block (khối lệnh) và phải được đặt trong cặp dấu {}. Nếu
trong ví dụ trên ta không đưa vào dấu ngoặc nhọn ở câu lệnh if, chỉ có câu lệnh
đầu tiên (x += 5) được thực hiện khi điều kiện trong câu lệnh if là đúng.
Ví dụ
dưới đây sẽ kiểm tra một năm có phải là 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. Chúng ta sử dụng lệnh if
để kiểm tra điều kiện.
Ví dụ:
/* To
test for a leap year */
#include
<stdio.h>
void
main() {
int year;
printf(“\nPlease enter a year:”);
scanf(“%d”, &year);
if(year % 4 == 0 && year % 100
!= 0 || year % 400 == 0)
printf(“\n%d is a leap
year!”, year);
}
Chương
trình trên cho ra kết quả như sau:
Please
enter a year: 1988
1988 is
a leap year!
Điều kiện
year % 4 == 0 && year % 100 != 0 || year % 400 == 0 trả về giá
trị 1 nếu năm đó là năm nhuận. Khi đó, chương trình hiển thị thông báo gồm biến
year và dòng chữ “is a leap year”. Nếu điều kiện trên không thỏa mãn,
chương trình không hiển thị thông báo nào.
Đăng nhận xét