Cấu trúc rẽ nhánh if else và minh họa với C++

Đây là bài 15/43 bài của series môn học Nhập môn lập trình

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.

Câu lệnh if

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.

Câu lệnh if else

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.

Câu lệnh if else if

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.

5/5 - (2 bình chọn)
Bài trước và bài sau trong môn học<< Thư viện cmath và một số hàm toán học thông dụng trong C++Cấu trúc rẽ nhánh switch case và minh họa với C++ >>
Chia sẻ trên mạng xã hội:

Tác giả Vinh Lê

Vinh Lê hiện đang là biên tập viên tại Góc Học IT.

Bài viết của Vinh Lê

Trả lời

Lưu ý:

1) Vui lòng bình luận bằng tiếng Việt có dấu.

2) Khuyến khích sử dụng tên thật và địa chỉ email chính xác.

3) Mọi bình luận trái quy định sẽ bị xóa bỏ.