Lệnh If .. Else trong C - Học lập trình C căn bản & nâng cao
Trong bài viết này chúng ta sẽ học lệnh If else trong C, đây là lệnh rẻ nhánh dùng để chia luồng chạy thành nhiều nhánh khác nhau, được sử dụng rất nhiều trong lập trình C. Một ví dụ thực tế thế này. Giả sử bạn đang viết chương trình kiểm tra tính chẵn lẻ, thì sẽ sử dụng lệnh if else để kiểm tra ...
Trong bài viết này chúng ta sẽ học lệnh If else trong C, đây là lệnh rẻ nhánh dùng để chia luồng chạy thành nhiều nhánh khác nhau, được sử dụng rất nhiều trong lập trình C.
Một ví dụ thực tế thế này. Giả sử bạn đang viết chương trình kiểm tra tính chẵn lẻ, thì sẽ sử dụng lệnh if else để kiểm tra phần chia lấy dư cho 2 có khác 0 hay không. Nếu bằng 0 thì số chẵn, ngược lại là số lẻ.
1. Lệnh If trong C
Cú pháp lệnh If else trong ngôn ngữ C như sau:
if (test expression) { // Đoạn code sẽ chạy khi test expression = TRUE }
Cách hoạt động như sau:
- Nếu biểu thức
test expression = true
thì đoạn code bên trong cặp ngoặc nhọn {} sẽ được chạy. - Ngược lại, nếu biểu thức
test expression = false
thì chương trình bỏ qua đoạn code bên trong đó.
Hãy xem hình dưới đây:
Ở ví dụ đầu tiên đoạn code bên trong if sẽ chạy vì điều kiện test < 10 = true
, còn ví dụ thứ hai không chạy vì test > 10 = false
.
Ví dụ: Viết chương trình in ra thông báo nếu người dùng nhập vào số âm.
Với bài này ta phải sử dụng lệnh scanf để nhận dữ liệu từ bàn phím.
#include <stdio.h> int main() { int number; printf("Nhap vao mot so nguyen: "); scanf("%d", &number); // Kiem tra so co nho hon 0 hay khong if (number < 0) { printf("So %d la so am ", number); } return 0; }
Kết quả: Giả sử mình nhập số -2 nhé
Nhap vao mot so nguyen: -2 So -2 la so am.
Bạn hãy thử thay số 2 bằng một số dương thì sẽ không thấy thông báo gì cả.
2. Lệnh if else trong C
Lệnh if chỉ kiểm tra điều kiện và rẻ vào một nhánh duy nhất, vì vậy không thực sự linh động trong lập trình.
Ví dụ: Bạn cần kiểm tra một số là số âm hay số dương, và thông báo lên màn hình console như sau:
- "%d là số dương" nếu bạn nhập vào số dương
- "%d là số âm" nếu bạn nhập vào số âm
Trong ví dụ phần 1 mình có làm một trường hợp rồi, bây giờ cần sử dụng lệnh else để xử lý cho trường hợp còn lại. Tuy nhiên trước tiên hãy xem cú pháp của lệnh if else đã nhé.
if (test expression) { // Đoạn code sẽ chạy nếu test expression = true } else { // Đoạn code sẽ chạy nếu test expression = false }
Xem ví dụ ở hình dưới đây.
- Ví dụ 1 Phần
if
sẽ chạy vì biểu thứctest < 10 = true
. - Ví dụ 2: Phần
else
sẽ chạy vìtest > 10 = false
.
Ví dụ: Viết chương trình kiểm tra số chẵn lẽ và thông báo lên màn hình console.
#include <stdio.h> int main() { int number; printf("Nhập vào số nguyên: "); scanf("%d", &number); // Chia lấy dư if (number%2 == 0) { printf("%d là số chẵn.",number); } else { printf("%d là số lẻ.",number); } return 0; }
Bạn hãy thử nhập vào số 7 và chạy chưong trình thì thu được kết quả như sau:
Nhập vào số nguyên: 7 7 là số lẻ.
Bạn có thể dùng nhiều lệnh if nhưng với lệnh else thì chỉ được 1 lần mà thôi. Cú pháp của nó như sau:
if (test expression1) { // statement(s) } else if(test expression2) { // statement(s) } else if (test expression3) { // statement(s) } . . else { // statement(s) }
Trình biên dịch sẽ chạy từ trên xuống, chỉ cần một lệnh if nào thỏa điều kiện thì nó sẽ bỏ qua những lệnh phía dưới. Nếu không có if nào thỏa mãn thì đoạn code ở lệnh else sẽ chạy, và đó cũng là đoạn code cuối cùng trong một tập hợp khối lệnh if else.
Ví dụ: Dùng lệnh if else để kiểm tra nhiều khoảng.
#include <stdio.h> int main() { int number1, number2; printf("Nhập vào 2 số nguyên: "); scanf("%d %d", &number1, &number2); //Kiểm tra nếu hai số bằng nhau if(number1 == number2) { printf("Kết quả: %d = %d",number1,number2); } //Kiểm tra nếu số 1 lớn hơn số 2. else if (number1 > number2) { printf("Kết quả: %d > %d", number1, number2); } //Trường hợp còn lại là số 1 bé hơn số 2 nên ta không cần check else { printf("Két quả: %d < %d",number1, number2); } return 0; }
Nếu mình nhập giá trị 12 thì sẽ có kết quả như sau:
Nhập vào 2 số nguyên: 12 23 Kết quả: 12 < 23
3. Lệnh if else lồng nhau trong C
If else lồng nhau tức là bên trong lệnh if else lại có thêm một hoặc nhiều lệnh if else khác.
Thường ta chỉ nên lồng từ 4 cấp đổ lại, vì nếu lồng quá nhiều cấp thì rát khó quản lý chương trình.
Ví dụ sau đây sử dụng hai lệnh if else lồng nhau.
#include <stdio.h> int main() { int number1, number2; printf("Nhập vào hai số nguyên: "); scanf("%d %d", &number1, &number2); if (number1 >= number2) { if (number1 == number2) { printf("Kết quả: %d = %d",number1,number2); } else { printf("Kết quả: %d > %d", number1, number2); } } else { printf("Kết quả: %d < %d",number1, number2); } return 0; }
Trên là kiến thức cơ bản của lệnh if else trong C, đây là lệnh được sử dụng khá thường xuyên trong lập trình nói chung và trong ngôn ngữ C nói riêng. Thực tế thì vẫn còn một lệnh rẻ nhánh khác nữa đó là lệnh switch case, tuy nhiên ta sẽ tìm hiểu nó ở một bài khác nhé.