Cấu trúc điều khiển được sử dụng rất nhiều trong lập trình. Cấu trúc điều khiển có 2 loại:
– Cấu trúc điều khiển rẽ nhánh:
- if else
- switch
– Cấu trúc điều khiển vòng lặp:
- for
- while
- do while
Cấu trúc điều khiển cho phép thay đổi thứ tự thực hiện các câu lệnh, giúp thực hiện các câu lệnh trong chương trình theo ý của người lập trình chứ không cứng nhắc là từ trên xuống dưới. Bài này sẽ giới thiệu cấu trúc rẽ nhánh if else.
1. Câu lệnh if
Cú pháp:
if (<điều kiện>) {
// câu lệnh trong thân if
}
– Nếu <điều kiện> đúng, câu lệnh trong thân if sẽ được thực thi.
– Nếu <điều kiện> sai, câu lệnh trong thân if sẽ được bỏ qua.
Chương trình C++ minh họa câu lệnh if
#include <iostream>
using namespace std;
int main()
{
int number;
cout << "Enter an integer: ";
cin >> number;
// checks if the number is positive
if (number > 0) {
cout << "You entered a positive integer: " << number << endl;
}
cout << "This statement is always executed.";
system("pause");
}
Kết quả 1
Enter an integer: 5
You entered a positive number: 5
This statement is always executed.
Kết quả 2
Enter a number: -5
This statement is always executed.
2. Câu lệnh if…else
Cú pháp:
if (<điều kiện>) {
// code được thực thi nếu <điều kiện> đúng
}
else {
// code được thực thi nếu <điều kiện> sai
}
– Nếu <điều kiện> đúng: Câu lệnh trong if sẽ được thực thi, câu lệnh trong else sẽ được bỏ qua.
– Nếu <điều kiện> sai: Câu lệnh trong if sẽ được bỏ qua, câu lệnh trong else sẽ được thực thi.
Chương trình C++ minh họa câu lệnh if else
#include <iostream>
using namespace std;
int main()
{
int number;
cout << "Enter an integer: ";
cin >> number;
if (number >= 0) {
cout << "You entered a positive integer: " << number << endl;
}
else {
cout << "You entered a negative integer: " << number << endl;
}
cout << "This line is always printed.";
system("pause");
}
Kết quả 1
Enter an integer: 4
You entered a positive integer: 4.
This line is always printed.
Kết quả 2
Enter an integer: -4
You entered a negative integer: -4.
This line is always printed.
3. Cấu trúc if…else lồng nhau
Trong khối lệnh if có thể có các khối lệnh if khác. Bên dưới mô phỏng cú pháp của cấu trúc if…else lồng nhau.
if (<điều kiện 1>) {
// code
// if trong if
if (<điều kiện 2>)) {
// code
}
}else{
// if trong else
if (<điều kiện 3>)) {
// code
}else{
// code
}
}
Chương trình C++ minh họa cấu trúc if…else lồng nhau
#include <iostream>
using namespace std;
int main()
{
int num;
cout << "Enter an integer: ";
cin >> num;
// outer if condition
if (num != 0) {
// inner if condition
if ((num % 2) == 0) {
cout << "The number is even." << endl;
}
// inner else condition
else {
cout << "The number is odd." << endl;
}
}
// outer else condition
else {
cout << "The number is 0 and it is neither even nor odd." << endl;
}
cout << "This line is always printed." << endl;
system("pause");
}
4. Câu lệnh if…else if
Câu lệnh if…else chỉ cho phép có một điều kiện với 2 lựa chọn, có thể dùng câu lệnh if…else if để có nhiều lựa chọn hơn dựa trên nhiều điều kiện.
Cú pháp:
if (<điều kiện 1>) {
// code block 1
}
else if (<điều kiện 2>){
// code block 2
}
else {
// code block 3
}
Nếu <điều kiện 1> đúng thì thực thi code block 1.
Nếu <điều kiện 1> sai thì kiểm tra <điều kiện 2>.
Nếu <điều kiện 2> đúng thì thực thi code block 2.
Nếu <điều kiện 2> sai thì thực thi code block 3 trong else.
Chương trình C++ minh họa cấu trúc if…else if
#include <iostream>
using namespace std;
int main()
{
int number;
cout << "Enter an integer: ";
cin >> number;
if (number > 0) {
cout << "You entered a positive integer: " << number << endl;
}
else if (number < 0) {
cout << "You entered a negative integer: " << number << endl;
}
else {
cout << "You entered 0." << endl;
}
cout << "This line is always printed.";
system("pause");
}
5. Một số lỗi phổ biến
Các bạn thường thêm một dấu chấm phẩy ở cuối mệnh đề if là sẽ bị lỗi.
if (BanKinh>=0);//lỗi, không có ; ở đây
{
ChuVi = 2 * BanKinh*PI;
cout << "Chu vi hinh tron: "<<ChuVi;
}
if (BanKinh>=0){ };//lỗi, không có { }; ở đây
{
ChuVi = 2 * BanKinh*PI;
cout << "Chu vi hinh tron: "<<ChuVi;
}
Các bạn thường quên cặp dấu {} cho khối lệnh là sẽ bị lỗi.
if (BanKinh>=0)//lỗi thiếu dấu {} cho lệnh if
ChuVi = 2 * BanKinh*PI;
cout << "Chu vi hinh tron: "<<ChuVi;
Các bạn thường thêm điều kiện cho else là sẽ bị lỗi.
if (a>0)
{
cout<<"So duong";
}
else (a<=0)//lỗi, không có điều kiện a<=0 ở đây
{
cout<<"Khong la so duong";
}
Các bạn cố gắng nắm vững cấu trúc rẽ nhánh if…else bởi các bạn sẽ sử dụng rất nhiều trong quá trình lập trình của mình.