Xem thêm

Câu điều kiện If và Toán tử điều kiện (If statements and Conditional operator)

Huy Erick
Giới thiệu Bạn đã nắm được kiến thức về luồng xử lý và các cấu trúc điều khiển trong C++ từ bài học trước. Hôm nay, mình sẽ giới thiệu với bạn về cấu trúc...

Giới thiệu

Bạn đã nắm được kiến thức về luồng xử lý và các cấu trúc điều khiển trong C++ từ bài học trước. Hôm nay, mình sẽ giới thiệu với bạn về cấu trúc rẽ nhánh trong C++, cụ thể là Câu điều kiện If và Toán tử điều kiện trong C++.

Câu điều kiện If

Câu điều kiện If là loại cơ bản nhất trong cấu trúc rẽ nhánh có điều kiện. Cấu trúc câu điều kiện If được mô tả như sau:

Xét cú pháp câu điều kiện If bên trên, nếu condition là một mệnh đề true, statement1 sẽ được thực thi, ngược lại thì statement2 sẽ được thực thi.

Ví dụ về chương trình kiểm tra đăng nhập đơn giản sử dụng câu điều kiện if:

#include 
#include 
using namespace std;

int main() {
  const string PASSWORD("howkteam.com");
  string password;

  cout << "Enter password: ";
  getline(cin, password);

  if (password == PASSWORD)
    cout << "Login succeed!" << endl;
  else
    cout << "Login failed!" << endl;

  return 0;
}

Nếu bạn không nhập đúng password là “howkteam.com”, chương trình sẽ thông báo “Login failed!”. Ngược lại sẽ thông báo "Login succeed!".

Câu điều kiện If với nhiều dòng lệnh

Lưu ý rằng dưới câu lệnh if hoặc else chỉ có duy nhất một câu lệnh được thực thi. Nếu bạn muốn thực thi nhiều câu lệnh ở dưới if hoặc else bạn phải sử dụng khối lệnh (block).

#include 
#include 
using namespace std;

int main() {
  const string PASSWORD("howkteam.com");
  string password;

  cout << "Enter password: ";
  getline(cin, password);

  if (password == PASSWORD) {
    cout << "Login succeed!" << endl;
    cout << "Hello howkteam.com!" << endl;
    cout << "Free education!" << endl;
    // ...
  } else {
    cout << "Login failed!" << endl;
    cout << "Hello howkteam.com!" << endl;
    cout << "Free education!" << endl;
    // ...
  }

  return 0;
}

Chuỗi các câu điều kiện If

Nếu muốn kiểm tra nhiều hơn 2 trường hợp trong một câu điều kiện If, bạn có thể sử dụng cấu cú pháp “if … else if …”:

if (condition) {
  // do A
} else if (another_condition) {
  // do B
} else if (one_more_condition) {
  // do C
} else {
  // do D
}

Ví dụ về chương trình sử dụng chuỗi các câu điều kiện if:

#include 
using namespace std;

int main() {
  cout << "Nhap so ban yeu thich (1, 2, 3): ";
  int n;
  cin >> n;

  if (n == 1)
    cout << "Ban that dep trai!" << endl;
  else if (n == 2)
    cout << "Ban qua dep trai!" << endl;
  else if (n == 3)
    cout << "Ban dep trai vo dich vu tru!" << endl;
  else
    cout << "Du lieu chua chinh xac!" << endl;

  return 0;
}

Toán tử logic với câu điều kiện If

Bạn có thể sử dụng toán tử logic (AND, OR, NOT, …) vào mệnh đề so sánh để kiểm tra nhiều điều kiện cùng một lúc.

#include 
#include 
using namespace std;

int main() {
  const string USERNAME("kteam");
  const string PASSWORD("howkteam.com");
  string userName;
  string password;

  cout << "Enter username: ";
  getline(cin, userName);
  cout << "Enter password: ";
  getline(cin, password);

  if ((userName == USERNAME) && (password == PASSWORD)) {
    cout << "Login succeed!" << endl;
  } else {
    cout << "Login failed!" << endl;
  }

  return 0;
}

Toán tử điều kiện (Conditional operator)

Cấu trúc câu điều kiện if/else:

if (condition)  // nếu condition là true 
  expression1; // thực thi câu lệnh này
else 
  expression2; // nếu condition là false, thực thi câu lệnh này

Hoặc:

if (condition)  // nếu condition là true 
  x = value1;  // x = value 1
else
  x = value2;  // nếu condition là false, x = value 2

Viết lại dưới dạng toán tử điều kiện ( ?: ):

(condition) ? expression1 : expression2;

Hoặc:

x = (condition) ? value1 : value2;

Toán tử điều kiện “?:” là toán tử 3 ngôi duy nhất trong C++ (vì nó chứa 3 toán hạng). Có thể dùng để thay thế câu lệnh if/else cơ bản.

Ví dụ 1:

int a(10), b(20), max;
if (a > b) {
  max = a;
}
else {
  max = b;
}

Bạn có thể viết lại ở dạng toán tử điều kiện:

int a(10, b(20);
int max = (a > b) ? a : b;

Ví dụ 2:

if (1 > 0) {
  cout << 1 << endl;
}
else {
  cout << 0 << endl;
}

Bạn có thể viết lại ở dạng toán tử điều kiện:

// Cách 1
(1 > 0) ? (cout << 1 << endl) : (cout << 0 << endl);
// Cách 2
cout << ((1 > 0) ? 1 : 0) << endl;

Toán tử điều kiện tương đương với một biểu thức

Toán tử điều kiện “?:“ có thể là một biểu thức, trong khi câu điều kiện if/else chỉ là một câu lệnh.

Ví dụ:

bool bIsVip = true; // Initializing a const variable
const double dPrice = bIsVip ? 1000 : 500;

Trong ví dụ trên, không thể dùng câu điều kiện if/else để thay thế. Vì một hằng số phải được khởi tạo giá trị tại thời điểm khai báo.

Kết luận

Qua bài học này, bạn đã nắm được hoàn toàn kiến thức về Câu điều kiện If và Toán tử điều kiện trong C++.

Trong bài tiếp theo, mình sẽ giới thiệu thêm 1 cấu trúc rẽ nhánh khác trong C++, cụ thể là CÂU ĐIỀU KIỆN SWITCH TRONG C++.

Cảm ơn bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý để phát triển bài viết tốt hơn. Đừng quên “Luyện tập - Thử thách - Không ngại khó”.

Thảo luận

Nếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần BÌNH LUẬN bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng.

1