Chi tiết bài học C++ if…else

C++ if…else

Trong bài này, bạn sẽ được học về cách viết câu lệnh ra quyết định trong chương trình C++ sử dụng các dạng câu lệnh if…else khác nhau.

Câu lệnh if trong C++

if (điều_kiện_kiểm_tra) 
{
    //các câu lệnh
}

Câu lệnh if đánh giá điều kiện kiểm tra bên trong dấu ngoặc tròn. Nếu biểu thức kiểm tra là đúng, câu lệnh bên trong thân của if sẽ được thực thi. Nếu biểu thức kiểm tra là sai, câu lệnh bên trong thân của if sẽ được bỏ qua.

Câu lệnh if hoạt động thế nào?

Ta cùng xét ví dụ dưới đây:


Ở hình bên trái, điều kiện của câu lệnh if (test < 10) là đúng nên chương trình sẽ nhảy vào thực thi các câu lệnh trong thân if. Ngược lại ở hình bên phải, điều kiện của câu lệnh if sai nên chương trình bỏ qua thân câu lệnh if và thực thi ở sau khối đó.

Flowchart của câu lệnh if

Hình 1. Sơ đồ hoạt động câu lệnh if

Ví dụ 1: Câu lệnh if trong C++

Chương trình dưới đây in ra số nguyên dương nhập vào bởi người dùng. Nếu người dùng nhập vào số âm, nó sẽ được bỏ qua thân của if; nếu người dùng nhập vào số dương, chương trình sẽ nhảy vào thân if.

#include <iostream>
using namespace std;

int main() 
{
	int number;
	cout << "Enter an integer: ";
	cin >> number;

	// Kiểm tra xem liệu số nhập vào có phải là số dương hay không
	if (number > 0) 
	{
		cout << "You entered a positive integer: " << number << endl;
	}

	cout << "This statement is always executed.";
	return 0;
}

Đầu ra 1

Enter an integer: 5

You entered a positive number: 5

This statement is always executed.

Đầu ra 2

Enter a number: -5

This statement is always executed.

 

Câu lệnh if…else trong C++

Câu lệnh if else sẽ thực thi mã nguồn trong thân câu lệnh if nếu điều kiện kiếm tra là đúng và bỏ qua mã nguồn trong thân câu lệnh else.

Nếu điều kiện kiểm tra là sai, nó sẽ thực thi mã nguồn bên trong thân câu lệnh else và bỏ qua mã nguồn trong thân câu lệnh if.

Câu lệnh if…else hoạt động thế nào?

Flowchart của if…else

Ví dụ 2: Câu lệnh if…else trong C++

// Chương trình này kiểm tra một số nguyên là âm hay dương
// Chương trình này coi 0 là một số dương

#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.";
	return 0;
}

Đầu ra

Enter an integer: -4

You entered a negative integer: -4.

This line is always printed.

 

Câu lệnh if…else lồng nhau (nested if…else) trong C++

Câu lệnh if…else thực thi hai đoạn mã nguồn khác nhau tùy theo biểu thức kiểm tra là đúng hay sai. Đôi khi, một biểu thức kiểm tra có thể có nhiều hơn hai khả năng.

Câu lệnh if…else lồng nhau cho phép bạn kiểm tra nhiều điều kiện và thực thi các đoạn mã nguồn khác nhau với nhiều hơn hai điều kiện.

Cú pháp câu lệnh if…else lồng nhau

if (biểu_thức_kiểm_tra1) 
{
   // Câu lệnh cần thực hiện nếu biểu_thức_kiểm_tra1 là đúng
}
else if(biểu_thức_kiểm_tra2) 
{
   // Câu lệnh cần thực hiện nếu biểu_thức_kiểm_tra1 là sai và biểu_thức_kiểm_tra2 là đúng
}
else if (biểu_thức_kiểm_tra3) 
{
   // Câu lệnh cần thực hiện nếu biểu_thức_kiểm_tra1 và biểu_thức_kiểm_tra2 là sai và biểu_thức_kiểm_tra3 là đúng
}
.
.
else 
{
   // Câu lệnh cần thực hiện nếu tất cả các biểu thức kiểm tra đều sai
}

Ví dụ 3: Câu lệnh if…else lồng nhau

// Chương trình kiểm tra xem một số nguyên là dương, âm hay bằng 0

#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.";
	return 0;
}

Đầu ra

Enter an integer: 0

You entered 0.

This line is always printed.

 

Toán tử điều kiện/Toán tử tam nguyên ?:

Một toán tử tam nguyên (Conditional/Ternary Operator ?:) sẽ sử dụng 3 toán hạng, toán tử này có thể dùng để thay thế cho câu lệnh if…else.

Xem đoạn mã sau:

if (a < b) {
   a = b;
}
else {
   a = -b;
}

Bạn có thể thay đoạn mã nguồn trên bằng:

a = (a < b) ? b : -b;

Toán tử tam nguyên sẽ dễ đọc hiểu hơn là một câu lệnh if…else đối với các điều kiện ngắn.