Cấu trúc rẽ nhánh với câu lệnh if else if giúp bạn có thể kiểm tra nhiều điều kiện khác nhau thay vì một điều kiện duy nhất.
1. If Và Else If
Trong trường hợp bài toán của bạn có nhiều rẽ nhánh khác nhau với các điều kiện tương ứng, nếu chỉ dùng if else thì bạn phải sử dụng if else lồng nhau dẫn tới code trở nên dài dòng và phức tạp.
If và else if giúp bạn có thể kiểm tra nhiều điều kiện và nó chỉ thực hiện duy nhất 1 khối lệnh trong các rẽ nhánh đó.
Cú pháp :
if (điều_kiện_1) {
//code 1
} else if (điều_kiện_2) {
//code 2
} else if (điều_kiện_3) {
//code 3
} ... else if (điều_kiện_n) {
//code n
} else {
//code else
}
//code 1
} else if (điều_kiện_2) {
//code 2
} else if (điều_kiện_3) {
//code 3
} ... else if (điều_kiện_n) {
//code n
} else {
//code else
}
Lưu ý khi sử dụng if và else if :
- Bạn có thể kiểm tra bao nhiêu điều kiện tùy ý
- Khối lệnh else có thể có hoặc không
- Khi rẽ nhánh nào được thực hiện thì các nhánh khác sẽ không được thực hiện, cấu trúc sẽ kết thúc
2. Bài Tập Áp Dụng
Bài 1. Nhập tháng và năm in ra số ngày của tháng, chú ý tháng 2 của năm nhuận có 29 ngày
#include <iostream>
using namespace std;
int main() {
int m, y;
cout << "Nhap thang, nam : ";
cin >> m >> y;
if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) {
cout << 31 << endl;
} else if (m == 4 || m == 6 || m == 9 || m == 11) {
cout << 30 << endl;
} else if (m == 2) {
if ((y % 400 == 0) || (y % 4 == 0 && y % 100 != 0)) {
cout << 29 << endl;
} else {
cout << 28 << endl;
}
} else {
cout << "Thang khong hop le !\n";
}
}
using namespace std;
int main() {
int m, y;
cout << "Nhap thang, nam : ";
cin >> m >> y;
if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) {
cout << 31 << endl;
} else if (m == 4 || m == 6 || m == 9 || m == 11) {
cout << 30 << endl;
} else if (m == 2) {
if ((y % 400 == 0) || (y % 4 == 0 && y % 100 != 0)) {
cout << 29 << endl;
} else {
cout << 28 << endl;
}
} else {
cout << "Thang khong hop le !\n";
}
}
Bài 2. Nhập 3 cạnh của tam giác là số nguyên, nếu 3 cạnh của tam giác đều in 1, cân in 2, vuông in 3, thường in 4. Giả sử 3 cạnh đã là 3 cạnh của tam giác hợp lệ
#include <iostream>
using namespace std;
int main() {
int a, b, c;
cin >> a >> b >> c;
if (a == b && b == c) {
cout << 1 << endl;
} else if ((a == b) || (b == c) || (a == c)) {
cout << 2 << endl;
} else if ((a * a == b * b + c * c) || (b * b == a * a + c * c) || (c * c == a * a + b * b)) {
cout << 3 << endl;
} else {
cout << 4 << endl;
}
}
using namespace std;
int main() {
int a, b, c;
cin >> a >> b >> c;
if (a == b && b == c) {
cout << 1 << endl;
} else if ((a == b) || (b == c) || (a == c)) {
cout << 2 << endl;
} else if ((a * a == b * b + c * c) || (b * b == a * a + c * c) || (c * c == a * a + b * b)) {
cout << 3 << endl;
} else {
cout << 4 << endl;
}
}