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

Khóa học lập trình C++ căn bản

5.0 (8 đánh giá)
Tạo bởi Kteam Cập nhật lần cuối 00:02 28-08-2020 127.173 lượt xem 2 bình luận
Tác giả/Dịch giả: Kteam
Học nhanh

Danh sách bài học

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

Dẫn nhập

Ở bài học trước: GIỚI THIỆU VỀ CẤU TRÚC ĐIỀU KHIỂN (Control flow introduction), bạn đã nắm được tổng quan về luồng xử lý và các loại cấu trúc điều khiển trong C++.

Hôm nay, mình sẽ giới thiệu cho các 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++ (If statements and Conditional operator).


Nội dung

Để đọc hiểu bài này tốt nhất các bạn nên có kiến thức cơ bản về các phần:

Trong bài ta sẽ cùng tìm hiểu các vấn đề:

  • Câu điều kiện If
  • Toán tử điều kiện (Conditional operator)

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ả bên dưới:

If thiếu:

if (condition)    // nếu condition là true
    statement;    // thực thi câu lệnh này

If đủ:

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

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 <iostream>
#include <string>
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;
}

Outputs:

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

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 (If with multiple statements)

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 <iostream>
#include <string>
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;
}

Outputs:

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

Kinh nghiệm: Nên đặt các câu lệnh của câu điều kiện If bên trong cặp dấu ngoặc nhọn {}, dù nó chỉ có một dòng lệnh. Điều này giúp chương trình rõ ràng hơn, dễ hiểu hơn.


Chuỗi các câu điều kiện If (Chaining if statements)

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 <iostream>
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;
}

Outputs:

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


Toán tử logic với câu điều kiện If (Using logical operators with if statements)

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. Toán tử logic đã được hướng dẫn chi tiết trong bài TOÁN TỬ QUAN HỆ, LOGIC, BITWISE, MISC & ĐỘ ƯU TIÊN TOÁN TỬ TRONG C++ (Operators).

Ví dụ:

#include <iostream>
#include <string>
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;
}

Outputs:

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

Bạn có thể xem lại bài TOÁN TỬ QUAN HỆ, LOGIC, BITWISE, MISC & ĐỘ ƯU TIÊN TOÁN TỬ TRONG C++ (Operators).để biết được cách thức hoạt động các toán tử logic.


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.

Chú ý: Các toán hạng của toán tử điều kiện không phải là một câu lệnh, nên sẽ không chứa dấu chấm phẩy;”.

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;

Kinh nghiệm: Khi viết các câu lệnh có nhiều toán tử, luôn sử dụng dấu ngoặc tròn để hạn chế sai sót về độ ưu tiên của toán tử.

Bạn có thể xem lại bài TOÁN TỬ QUAN HỆ, LOGIC, BITWISE, MISC & ĐỘ ƯU TIÊN TOÁN TỬ TRONG C++ (Operators) để nắm rõ hơn về độ ưu tiên toán tử.


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 (expression), trong khi câu điều kiện if/else chỉ là một câu lệnh (statements).

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++ (If statements).

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++ (Switch statements).

Cảm ơn các bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của mình để 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ó”.


Tải xuống

Tài liệu

Nhằm phục vụ mục đích học tập Offline của cộng đồng, Kteam hỗ trợ tính năng lưu trữ nội dung bài học Câu điều kiện If và Toán tử điều kiện (If statements and Conditional operator) dưới dạng file PDF trong link bên dưới.

Ngoài ra, bạn cũng có thể tìm thấy các tài liệu được đóng góp từ cộng đồng ở mục TÀI LIỆU trên thư viện Howkteam.com

Đừng quên likeshare để ủng hộ Kteam và tác giả nhé!


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ê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.

Nội dung bài viết

Tác giả/Dịch giả

Khóa học

Khóa học lập trình C++ căn bản

Hiện nay, C++ đã là cái tên rất quen thuộc trong ngành lập trình. Mặc dù C++ là ngôn ngữ lập trình đã ra đời khá lâu, nhưng không phải ai cũng có cơ hội để tìm hiểu về nó.

Vì vậy, Kteam đã xây dựng lên khóa học LẬP TRÌNH C++ CĂN BẢN để cung cấp một lượng kiến thức về ngôn ngữ C++ nói riêng, và các khái niệm khác trong lập trình nói chung.

Nội dung khóa học sẽ được phân tách một cách chi tiết, nhằm giúp các bạn dễ hiểu và thực hành được ngay. Serial dành cho những bạn chưa có bất kỳ kiến thức gì về lập trình, hoặc những bạn mất căn bản muốn lấy lại kiến thức nền tảng lập trình, cụ thể là C++.

Đánh giá

win1702 đã đánh giá 21:56 15-07-2024

rarl123 đã đánh giá 17:30 07-07-2023

nguyentanhai đã đánh giá 08:43 24-06-2023

hunglai2000 đã đánh giá 14:18 17-12-2022

Cảm ơn Kteam vì đã tạo ra một kho kiến thức bổ ích mà lại hoàn toàn free thế này ạ!

hoangtranviet07@gmail.com đã đánh giá 21:14 27-08-2020

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
hunglai2000 đã bình luận 14:05 17-12-2022

Cố gắng học để xin việc lương nghìn đô thôi anh em! 

 

Không có video.