Toán tử ba ngôi trong C / C++
Trong bài viết này, codehow sẽ giới thiệu đến các bạn một khái niệm mới trong lập trình là toán tử ba ngôi trong C / C++. Đây được xem như là một dạng câu lệnh if rút gọn, được sử dụng trong các câu có điều kiện đơn giản.
Với những chương trình có điều kiện đơn giản thì việc sử dụng toán tử ba ngôi rất hữu ích, giúp tiết kiệm thời gian khi lập trình.
Bây giờ hãy cùng mình bắt đầu tim hiểu về toán tử ba ngôi trong C / C++ thôi nhé.
Cú pháp toán tử ba ngôi trong C / C++
Đúng với tên gọi của nó là toán tử ba ngôi, có ba phần trong cấu trúc toán tử ba ngôi trong C / C++. Hãy cùng xem cú pháp của nó dưới đây:
condition ? true_value : false_value;
Trong đó:
- condition: là điều kiện của phép toán. Có thể trả về một trong hai giá trị true hoặc false.
- true_value: Đây là giá trị trả về nếu condition true.
- false_value: Đây là giá trị trả về nếu condition false.
Để hiểu rõ hơn, mình có một ví dụ đơn giản sử dụng toán tử ba ngôi.
Ví dụ: Viết chương trình yêu cầu người dùng nhập vào một số nguyên. Sử dụng toán tử ba ngôi trong C / C++ để kiểm tra số đó là số chẵn hay số lẻ rồi hiển thị ra màn hình.
#include <iostream> using namespace std; int main() { //khai báo biến n là số cần kiểm tra int n; //yêu cầu người dùng nhập vào số cần kiểm tra cout<<"Nhập vào số n: "; cin>>n; //khai báo biến s là chuỗi, dùng để thông báo string s; //sử dụng toán tử ba ngôi kiểm tra biến n là số chẵn hay số lẻ s = (n % 2 == 0) ? "Số chẵn" : "số lẻ"; //hiển thị thông báo ra màn hình cout << s; cout<<"\n----------------------\n"; cout<<"Chương trình này được đăng tại codehow.net"; return 0; }
Kết quả:
Nếu chúng ta không sử dụng toán tử ba ngôi mà sử dụng câu lệnh if else thì sẽ như sau:
#include <iostream> using namespace std; int main() { //khai báo biến n là số cần kiểm tra int n; //yêu cầu người dùng nhập vào số cần kiểm tra cout<<"Nhập vào số n: "; cin>>n; //sử dụng câu lệnh if else để kiểm tra số chẵn hay số lẻ if(n % 2 == 0) cout<<"Đây là số chẵn"; else cout<<"Đây là số lẻ"; cout<<"\n----------------------\n"; cout<<"Chương trình này được đăng tại codehow.net"; return 0; }
Kết quả:
Ví dụ sử dụng toán tử ba ngôi trong C / C++
Trong phần này mình sẽ thực hiện một vài ví dụ sử dụng toán tử ba ngôi trong C / C++. Mỗi ví dụ sẽ được viết bằng hai ngôn ngữ khác nhau là C và C++, hãy bắt đầu thôi nào!!!
Ví dụ 1: yêu cầu người dùng nhập vào hai số, sử dụng toán tử ba ngôi để kiểm tra xem số nào hơn nhất. Sau đó hiển thị thông báo ra màn hình.
Chương trình C:
#include <stdio.h> int main(void) { // định nghĩa các biến int n1, n2, max; printf("Nhập vào số n1: "); scanf("%d", &n1); printf("Nhập vào số n2: "); scanf("%d", &n2); // Số lớn nhất giữa n1 và n2 max = (n1 > n2) ? n1 : n2; // In ra số lớn nhất printf("Số lớn nhất giữa %d và %d là: %d.", n1, n2, max); printf("\n----------------------\n"); printf("Chương trình này được đăng tại codehow.net"); return 0; }
Chương trình C++:
#include <iostream> using namespace std; int main() { // định nghĩa các biến int n1, n2, max; cout<<"Nhập vào số n1: "; cin>>n1; cout<<"Nhập vào số n2: "; cin>>n2; // Số lớn nhất giữa n1 và n2 max = (n1 > n2) ? n1 : n2; // In ra số lớn nhất cout<<"Số lớn nhất giữa "<<n1<<" và "<<n2<<" là: "<<max; cout<<"\n----------------------\n"; cout<<"Chương trình này được đăng tại codehow.net"; return 0; }
Kết quả:
Ví dụ 2: Yêu cầu người dùng nhập vào một năm bất kỳ, sử dụng toán tử ba ngôi để kiểm tra xem có phải năm nhuận hay không. Hiển thị kết quả ra màn hình.
Gợi ý:
- Năm nhuận là năm chia hết cho 4 nhưng không chia hết cho 100.
- Năm nhuận là năm chia hết cho 400.
Chương trình C++:
#include <iostream> using namespace std; int main() { //khai báo biến n là số cần kiểm tra int n; //yêu cầu người dùng nhập vào số cần kiểm tra cout<<"Nhập vào số năm: "; cin>>n; string s; s = ((n % 4 == 0 && n % 100 != 0) || (n % 400 == 0)) ? "Năm nhuận":"Không phải năm nhuận"; cout<<s; cout<<"\n----------------------\n"; cout<<"Chương trình này được đăng tại codehow.net"; return 0; }
Lời kết
Như vậy là chúng ta đã cùng nhau tìm hiểu về toán tử ba ngôi trong C / C++. Đây là dạng rút gọn của câu lệnh if nên khi gặp các trường hợp điều kiện đơn giản thì hãy dùng nó.
Đối với trường hợp chương trình có điều kiện phức tạp, chúng ta nên sử dụng if...else để dễ xử lý và bảo trị code hơn. Đừng quá lạm dụng toán tử ba ngôi trong chương trình nhé.