Trong bài viết này các bạn sẽ học cấu trúc rẽ nhánh với câu lệnh if else và if else lồng nhau thông qua các ví dụ trực quan.
1. Câu lệnh if
Câu lệnh if được sử dụng khi bạn cần kiểm tra một điều kiện trước khi thực hiện những câu lệnh khi điều kiện đó có giá trị đúng
Ví dụ : Nếu n là số chẵn sẽ in ra "AzBook"
Cú pháp :
//Các câu lệnh
}
Điều kiện ở trong if thường là các phép so sánh, biểu thức trả về giá trị đúng sai. Khi điều kiện này có giá trị đúng thì các câu lệnh bên trong ngoặc nhọn của if sẽ được thực hiện, ngược lại thì các câu lệnh này sẽ bị bỏ qua.
Ví dụ 1 : Kiểm tra n là 28 thì in ra AzBook
using namespace std;
int main() {
int n = 28;
if(n == 28) {
cout << "AzBook\n";
}
if(n > 30) {
cout << "Blog AzBook\n";
}
cout << "end\n";
return 0;
}
Output :
end
Ví dụ 2 : Kiểm tra n là số chẵn thì in ra "CHAN"
Để kiểm tra 1 số là số chẵn bạn tìm số dư của số đó với 2 và so sánh số dư đó với 0
using namespace std;
int main() {
int n = 28;
if ((n % 2) == 0) {
cout << "CHAN\n";
}
if ((n % 2) != 0) {
cout << "LE\n";
}
return 0;
}
Output :
Ví dụ 3 : Kiểm tra n chia hết cho m
Để kiểm tra tính chia hết bạn tìm số dư của n với m và so sánh với 0
using namespace std;
int main() {
int n = 28, m = 4;
if ((n % m) == 0) {
cout << "Chia het\n";
}
if ((n % m) != 0) {
cout << "Khong chia het\n";
}
return 0;
}
Output :
Ví dụ 4 : Kiểm tra n là một trong 4 số 2, 3, 5, 7 thì in ra YES
using namespace std;
int main() {
int n = 5;
if ((n == 2) || (n == 3) || (n == 5) || (n == 7)) {
cout << "YES\n";
}
return 0;
}
Output :
Chú ý : Trong C++ các giá trị khác không được coi là đúng nêu bạn có thể sử dụng nó để làm điều kiện cho if. Nếu số mà bạn truyền vào làm điều kiện cho if khác 0 thì code trong if sẽ thực thi và ngược lại.
Ví dụ 5 :
using namespace std;
int main() {
int n = 28, m = 0;
if(n) {
cout << n << " khac 0\n";
}
if(m) {
cout << m << " khac 0\n";
}
printf("END\n");
return 0;
}
Output :
END
2. If Else
Câu lệnh if sẽ giúp thực thi khi điều kiện trong if đúng, còn trong trường hợp sai thì khối lệnh bên trong else sẽ được thực hiện.
If có thể không cần đến else nhưng else thì cần if đi trước.
Cú pháp :
//Code này sẽ được thực hiện
//khi điều kiện đúng
} else {
//Code này sẽ thực hiện khi điều
//kiện sai
}
Ví dụ 1 : Kiểm tra n là số chẵn nếu đúng in CHAN và AzBook, sai in LE và azbook.org
using namespace std;
int main() {
int n;
scanf("%d", &n);
if(n % 2 == 0) {
cout << "CHAN\n";
cout << "AzBook\n";
} else {
cout << "LE\n";
cout << "azbook.org\n";
}
return 0;
}
Output :
AzBook
Ví dụ 2 : Kiểm tra nếu n là năm nhuận in ra YES, ngược lại in ra NO
Năm nhuận là năm chia hết cho 400 hoặc chia hết cho 4 và không chia chết cho 100
using namespace std;
int main() {
int n = 2020;
if ((n % 400 == 0) || (n % 4 == 0 && n % 100 != 0)) {
cout << "YES\n";
} else {
cout << "NO\n";
}
}
Output :
3. If Else Lồng Nhau
If else có thể lồng vào nhau tức là bên trong khối if else cũng có thể có thêm nhiều câu lệnh if else khác.
Thông thường if else lồng nhau được sử dụng khi điều kiện của bài toán của bạn quá lớn và cần chia nhỏ ra làm nhiều phần để kiểm tra từng bước một.
Ví dụ 1 : Kiểm tra n nằm trong đoạn [20, 50] và chia hết cho ít nhất 1 trong 4 số 2, 3, 5, 7, nếu đúng in YES, ngược lại in NO
Code 1 : Sử dụng if else
using namespace std;
int main() {
int n = 20;
if ((n >= 20 && n <= 50) && (n % 2 == 0 || n % 3 == 0 || n % 5 == 0 || n % 7 == 0)) {
cout << "YES\n";
} else {
cout << "NO\n";
}
return 0;
}
Code 2 : Sử dụng if else lồng nhau
using namespace std;
int main() {
int n = 20;
if ((n >= 20 && n <= 50)) {
if(n % 2 == 0 || n % 3 == 0 || n % 5 == 0 || n % 7 == 0) {
cout << "YES\n";
} else {
cout << "NO\n";
}
} else {
cout << "NO\n";
}
return 0;
}
4. Bài Tập Luyện Tập
Để có thể viết if else thành thạo bạn cần luyện tập nhiều và nắm được các câu lệnh kiểm tra thường gặp với if.
Bài 1. N có phải là số chẵn, đúng in 1 sai in 0
using namespace std;
int main() {
int n;
cin >> n;
if (n % 2 == 0) {
cout << 1 << endl;
} else {
cout << 0 << endl;
}
return 0;
}
Bài 2. N có phải là số vừa chia hết cho 3 vừa chia hết cho 5, đúng in 1 sai in 0
using namespace std;
int main() {
int n; cin >> n;
if ((n % 3 == 0) && (n % 5 == 0)) {
cout << 1 << endl;
} else {
cout << 0 << endl;
}
return 0;
}
Bài 3. N có phải là số chia hết 3 nhưng không chia hết cho 7, đúng in 1 sai in 0
using namespace std;
int n; cin >> n;
if ((n % 3 == 0) && (n % 7 != 0)) {
cout << 1 << endl;
} else {
cout << 0 << endl;
}
return 0;
}
Bài 4. N có phải là số chia hết cho 3 hoặc 7, đúng in "AzBook" và "laptrinhC++", sai in "azbook.org" và "Java"
using namespace std;
int main() {
int n;
cin >> n;
if ((n % 3 == 0) || (n % 7 == 0)) {
cout << "AzBook\n";
cout << "laptrinhC++\n";
} else {
cout << "azbook.org\n";
cout << "Java\n";
}
}
Bài 5. N là số lớn hơn 30 và nhỏ hơn 50, đúng in 1 sai in 0
using namespace std;
int main() {
int n; cin >> n;
if ((n > 30) && (n < 50)) {
cout << 1 << endl;
} else {
cout << 0 << endl;
}
}
Bài 6. N có phải là số không nhỏ hơn 30 và chia hết cho ít nhất một trong 3 số 2, 3, 5, đúng in 1 sai in 0
using namespace std;
int main() {
int n; cin >> n;
if ((n >= 30) && (n % 2 == 0 || n % 3 == 0 || n % 5 == 0)) {
cout << 1 << endl;
} else {
cout << 0 << endl;
}
}
Bài 7. N có phải là số có 2 chữ số và có chữ tận cùng là một số nguyên tố
using namespace std;
int main() {
int n; cin >> n;
int r = n % 10;
// chữ số cuối cùng
if ((n >= 10 && n <= 99) && (r == 2 || r == 3 || r == 5 || r == 7)) {
cout << 1 << endl;
} else {
cout << 0 << endl;
}
}
Bài 8. N có phải là số không vượt quá 100 và chia hết cho 23?
using namespace std;
int main() {
int n; cin >> n;
if ((n <= 100) && (n % 23 == 0)) {
cout << 1 << endl;
} else {
cout << 0 << endl;
}
}
Bài 9. N không thuộc đoạn [10, 20]?
using namespace std;
int main() {
int n; cin >> n;
if ((n < 10) || (n > 20)) {
cout << 1 << endl;
} else {
cout << 0 << endl;
}
}
Bài 10. N có chữ số tận cùng là bội số của 3
using namespace std;
int main() {
int n; cin >> n;
if ((n % 10) % 3 == 0) {
cout << 1 << endl;
} else {
cout << 0 << endl;
}
}