If trong C++ với một hoặc nhiều điều kiện | Laptrinhcanban.com

If trong C++ với một hoặc nhiều điều kiện

Hướng dẫn cách sử dụng lệnh if trong C++. Bạn sẽ học được cách sử dụng các loại câu lệnh if trong C++ như lệnh if trong C++, if else trong C++elif trong C++, cũng như cách ứng dụng chúng để xử lý câu lệnh if một điều kiện hoặc là if nhiều điều kiện trong C++ sau bài học này.

Lệnh if trong C++

Lệnh if trong C++ bao gồm từ khóa if, một biểu thức điều kiệnmột khối gồm các câu lệnh được mô tả trong khối đó. Khối lệnh trong if được đặt giữa cặp dấu ngoặc nhọn {} để biểu thị bắt đầu và kết thúc của khối. Các lệnh mô tả trong khối chỉ được xử lý khi biểu thức điều kiện được chỉ định là True (đúng).

Chúng ta sử dụng lệnh if trong C++ với cú pháp sau đây:

if (biểu thức điều kiện){
    câu lệnh xử lý nếu biểu thức điều kiện là True (đúng)
}

Nếu biểu thức điều kiện True (đúng), các câu lệnh mô tả trong khối sẽ được thực thi theo thứ tự. Chúng ta cũng có thể viết nhiều câu lệnh liên tiếp trong khối như sau:

if (biểu thức điều kiện):
    câu lệnh 1;
    câu lệnh 2;
    câu lệnh 3;

Nếu chỉ có 1 câu lệnh trong khối lệnh if, chúng ta cũng có thể lược bỏ cặp dấu {} và sử dụng if rút gọn trong C++ như sau:

if (biểu thức điều kiện)
    câu lệnh;

Chúng ta cũng có thể viết gọn các lệnh trên một dòng trong trường hợp này như sau:

if (biểu thức điều kiện) câu lệnh;

Sơ đồ khối câu lệnh điều kiện trong C++ như sau:
Lệnh if trong C++

Lại nữa, khi viết lệnh if trong C++, mặc dù không phải là bắt buộc nhưng chúng ta nên sử dụng các dấu thụt lề đầu dòng để cấu trúc câu lệnh rõ ràng và dễ đọc hơn. Tất cả các câu lệnh mô tả trong khối nên được viết với độ thụt lề giống nhau. Thông thường, chúng ta sẽ dùng 2 hoặc 4 khoảng trắng tạo ra bởi phím cách, hoặc là một dấu tab được tạo ra khi bạn nhấn phím Tab một lần, để quy định độ thụt lề của khối.

Trong biểu thức điều kiện, chúng ta sử dụng toán tử so sánhtoán tử logic để mô tả điều kiện. Nếu kết quả của các phép so sánh hoặc logic này True, các lệnh mô tả trong khối mới được thực hiện. Bạn có thể tìm hiểu chi tiết về các loại toán tử sử dụng trong biểu thức điều kiện của câu lệnh if C++ tại bài viết Toán tử so sánh trong C++toán tử logic trong C++.

Sau đây, chúng ta sẽ thử viết một câu lệnh if trong C++ đơn giản để kiểm tra tuổi của một người đã đủ 18 hay chưa.

Trước hết, chúng ta khai báo biến old với giá trị 17. Sau đó chúng ta so sánh giá trị gán trong biến old với số 18 để kiểm tra kết quả biểu thức điều kiện old < 18. Và nếu kết quả này là True, lệnh thay đổi giá trị result = "Em chưa 18" trong khối mới được thực hiện.

#include <iostream>
using namespace std;

int main() {
int old = 17;
string result = "Trên 18 tuổi";

if (old < 18){
result = "Em chưa 18";
}
cout << result << endl;

return 0;
}
//> Em chưa 18

Ở ví dụ trên, do old =17 nên biểu thức old < 18 True, dẫn đến lệnh thay đổi giá trị được thực hiện.

Giả sử chúng ta chỉ định old = 20 trong ví dụ trên, do biểu thức điều kiện old <18 khi này không còn True (đúng) nữa, do đó lệnh thay đổi giá trị result = "Em chưa 18" mô tả trong khối sẽ không được thực hiện. Kết quả, giá trị ban đầu result= "Trên 18 tuổi" không bị thay đổi và được in ra như sau:

#include <iostream>
using namespace std;

int main() {
int old = 20;
string result = "Trên 18 tuổi";

if (old < 18){
result = "Em chưa 18";
}
cout << result << endl;

return 0;
}
//> Trên 18 tuổi

Lại nữa, do trong ví dụ này chỉ có 1 lệnh duy nhất trong khối if nên chúng ta đã có thể bỏ qua cặp dấu {} như cách viết if rút gọn trong C++ sau:

if (old < 18) result = "Em chưa 18";

if else trong C++

if else trong C++ được sử dụng để xử lý lệnh if khi biểu thức điều kiện được chỉ định là False (sai).
Ở phần trên chúng ta đã biết lệnh if trong C++ chỉ xử lý các lệnh mô tả trong khối if nếu biểu thức điều kiện là True (đúng). Trong trường hợp bạn muốn xử lý lệnh if trong C++ khi biểu thức điều kiện là False (sai), hãy sử dụng lệnh if else trong C++ với cú pháp sau đây:

if (biểu thức điều kiện){
    câu lệnh xử lý nếu biểu thức điều kiện là True (đúng)
}else{
    câu lệnh xử lý nếu biểu thức điều kiện là False (sai)
}

Nếu chỉ có 1 câu lệnh trong khối if else thì chúng ta cũng có thể lược bỏ cặp dấu {} và sử dụng if rút gọn trong C++ như sau:

if (biểu thức điều kiện)
    câu lệnh xử lý nếu biểu thức điều kiện là True (đúng)
else
    câu lệnh xử lý nếu biểu thức điều kiện là False (sai)

Hoặc là viết gọn các câu lệnh trên một dòng như sau:

if (biểu thức điều kiện) câu lệnh xử lý nếu biểu thức điều kiện là True (đúng)
else câu lệnh xử lý nếu biểu thức điều kiện là False (sai)

Chúng ta thêm các lệnh sẽ được xử lý nếu biểu thức điều kiện là False vào trong khối lệnh else, và các lệnh này sẽ chỉ được chạy nếu biểu thức điều kiện là False mà thôi.

Sơ đồ khối câu lệnh if else trong C++ như sau:
if else trong C++

Một ví dụ cụ thể, giả sử bạn mười bảy tuổi và bạn muốn vào một bar chơi. Khi đó, hãy viết một mã lệnh kiểm tra điều kiện tuổi được vào bar như sau:

#include <iostream>
using namespace std;

int main() {
int old = 17;

if (old < 18){
cout << "Em chưa 18, không được vào bar" << endl;

}else{
cout << "Trên 18, đủ tuổi vào bar" << endl;
}
return 0;
}

Kết quả:

Em chưa 18, không được vào bar

Ở trên, do bạn 17 tuổi (old = 17), nên biểu thức điều kiện old < 18 là True, dẫn đến các lệnh trong khối lệnh if sẽ được thực hiện, do đó kết quả Em chưa 18, không được vào bar được in ra màn hình.

Trong trường hợp chỉ định lại tuổi old = 20, khi này biểu thức điều kiện lại trở thành False, do đó các lệnh trong khối lệnh else sẽ được thực hiện, nên kết quả khác sẽ in ra màn hình như sau:

#include <iostream>
using namespace std;

int main() {
int old = 20;

if (old < 18){
cout << "Em chưa 18, không được vào bar" << endl;

}else{
cout << "Trên 18, đủ tuổi vào bar" << endl;
}
return 0;
}
//>Trên 18, đủ tuổi vào bar

Lại nữa, các khối lệnh if và else ở trên do chỉ có một lệnh duy nhất trong nó, do đó chúng ta cũng có thể lược bỏ đi các cặp dấu {} như cách viết if rút gọn trong C++ sau:

if (old < 18) cout << "Em chưa 18, không được vào bar" << endl;
else cout << "Trên 18, đủ tuổi vào bar" << endl;

elif trong C++ | if nhiều điều kiện trong C++

elif trong C++ được sử dụng để xử lý câu lệnh if nhiều điều kiện trong C++.

Ở phần trên, chúng ta đã làm việc với câu lệnh if một điều kiện trong C++. Khi bạn cần làm việc với câu lệnh if nhiều điều kiện trong C++ , chúng ta cần sử dụng tới elif trong C++ với cú pháp sau đây:

if (biểu thức điều kiện 1){
    câu lệnh xử lý nếu biểu thức điều kiện 1 là True (đúng)
}else if(biểu thức điều kiện 2){
    câu lệnh xử lý nếu biểu thức điều kiện 2 là True (đúng)
}else if(biểu thức điều kiện 3){
    câu lệnh xử lý nếu biểu thức điều kiện 3 là True (đúng)

}else{
    câu lệnh xử lý nếu tất cả các biểu thức điều kiện ở trên đều False (sai)
}

Chúng ta sẽ viết các biểu thức điều kiện cùng các lệnh sẽ xử lý nếu biểu thức điều kiện đó True (đúng) vào khối tương ứng sau lệnh ifelif. Cuối cùng chúng ta viết các lệnh xử lý mặc định vào trong khối khối else, và các lệnh này sẽ được xử lý trong trường hợp tất các các biểu thức điều kiện được chỉ định đều False (sai).

Sơ đồ khối câu lệnh elif trong C++ như sau:
elif trong C++

Trong lệnh if elif else C++ các biểu thức điều kiện sẽ được phán đoán từ trên xuống dưới. Nếu biểu thức điều kiện là True (đúng), các lệnh trong khối tương ứng sẽ được thực thi, các biểu thức điều kiện tiếp theo sẽ không được kiểm tra nữa, và toàn bộ mã lệnh được kết thúc.
Nếu biểu thức điều kiện là False (sai) thì tiến hành kiểm tra kết quả của biểu thức điều kiện tiếp theo, và lặp lại quá trình cho tới cuối cùng.
Và nếu như tất cả các biểu thức điều kiện được chỉ định đều cho kết quả False (sai), các lệnh mặc định trong khối else sẽ được thực hiện.

Lại nữa, bạn cũng có thể lược bỏ đi cả khối else, khi đó chương trình sẽ không có lệnh xử lý mặc định, và trong trường hợp toàn bộ các biểu thức điều kiện được chỉ định đều False (sai), sẽ không có câu lệnh nào được thực thi hay kết quả nào được trả về.

Ví dụ về sử dụng elif trong C++ như sau. Chúng ta cũng sẽ sử dụng lại ví dụ kiểm tra tuổi vào bar như trên, nhưng sẽ kèm thêm một trường hợp nữa là kiểm tra thẻ chứng minh nhân dân:

#include <iostream>
using namespace std;

int main() {
int old = 17;
string cmnd = "không";

if (old < 18 && cmnd == "có"){
cout << "Em chưa 18, không được vào bar" << endl;

} else if (old >= 18 && cmnd == "có"){
cout << "Trên 18, đủ tuổi vào bar" << endl;
} else {
cout << "Về lấy CMND và quay lại sau" << endl;
}

return 0;
}
//>Về lấy CMND và quay lại sau

Với ví dụ trên, chỉ khi nào bạn có mang theo CMND và trên 18 tuổi thì kết quả của lệnh elif trong C++ mới cho bạn vào bar mà thôi.

if rút gọn trong C++

Như phần trên Kiyoshi đã trình bày, thì nếu trong khối lệnh của if, if else hoặc else chỉ chứa một câu lệnh duy nhất thì chúng ta có thể lược bỏ đi cặp dấu {} và sử dụng tới if rút gọn trong C++.

Ví dụ cụ thể về if rút gọn trong C++ trong câu lệnh if else trong C++ như sau:

#include <iostream>
using namespace std;

int main() {
int old = 20;

if (old < 18) cout << "Em chưa 18, không được vào bar" << endl;
else cout << "Trên 18, đủ tuổi vào bar" << endl;

return 0;
}
//>Trên 18, đủ tuổi vào bar

Lại nữa, chúng ta cũng có thể kết hợp cả cú pháp lệnh if trong C++ thông thường và if rút gọn trong C++ trong cùng một chỗ như sau:

#include <iostream>
using namespace std;

int main() {
int old = 17;

if (old < 18) {
cout << "Em chưa 18, không được vào bar" << endl;
cout << "Đủ tuổi rồi tới nha" << endl;
}
else cout << "Trên 18, đủ tuổi vào bar" << endl;

return 0;
}
//Em chưa 18, không được vào bar
//Đủ tuổi rồi tới nha

Giống như ở trên thì trong khối lệnh if có nhiều hơn 2 lệnh, do đó chúng ta phải dùng cú pháp lệnh if thông thường với cặp dấu {}, tuy nhiên trong khối lệnh else do chỉ có 1 lệnh, nên chúng ta hoàn toàn có thể lược bỏ cặp dấu này đi.

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn về cách sử dụng các loại câu lệnh lệnh if trong C++ như lệnh if trong C++, if else trong C++, và elif trong C++ rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về C++ trong các bài học tiếp theo.

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.