LATEST

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ả:

bai23 01 png

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ả:

bai23 02 png

Kết luận: Chúng ta chỉ nên sử dụng toán tử ba ngôi khi điều kiện đơn giản, nếu điều kiện phức tạp hơn thì nên sử dụng câu lệnh if...else.

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ả:

bai23 04 png

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

Cùng chuyên mục:

Danh sách liên kết (Linked List) là gì? Các loại danh sách liên kết

Danh sách liên kết (Linked List) là gì? Các loại danh sách liên kết

Sử dụng đệ quy để giải bài toán tháp Hà Nội

Sử dụng đệ quy để giải bài toán tháp Hà Nội

Đệ quy tương hỗ (Mutual Recursion) trong C / C++

Đệ quy tương hỗ (Mutual Recursion) trong C / C++

Đệ quy lồng (Nested Recursion) trong C / C++

Đệ quy lồng (Nested Recursion) trong C / C++

Đệ quy đa tuyến (Exponential Recursion) trong C / C++

Đệ quy đa tuyến (Exponential Recursion) trong C / C++

Đệ quy nhị phân (Binary Recursion) trong C / C++

Đệ quy nhị phân (Binary Recursion) trong C / C++

Đệ quy đuôi (Tail Recursion) trong C / C++

Đệ quy đuôi (Tail Recursion) trong C / C++

Đệ quy tuyến tính (Linear Recursion) trong C / C++

Đệ quy tuyến tính (Linear Recursion) trong C / C++

Hàm đệ quy là gì? Các loại hàm đệ quy trong C / C++

Hàm đệ quy là gì? Các loại hàm đệ quy trong C / C++

Thuật toán sắp xếp Quick Sort trong C / C++

Thuật toán sắp xếp Quick Sort trong C / C++

Thuật toán sắp xếp trộn (Merge Sort) trong C / C++

Thuật toán sắp xếp trộn (Merge Sort) trong C / C++

Thuật toán sắp xếp chọn (Selection Sort) trong C / C++

Thuật toán sắp xếp chọn (Selection Sort) trong C / C++

Thuật toán sắp xếp chèn (Insertion Sort) trong C / C++

Thuật toán sắp xếp chèn (Insertion Sort) trong C / C++

Thuật toán sắp xếp nổi bọt (Bubble Sort) trong C / C++

Thuật toán sắp xếp nổi bọt (Bubble Sort) trong C / C++

Thuật toán tìm kiếm nội suy (Interpolation Search) trong C / C++

Thuật toán tìm kiếm nội suy (Interpolation Search) trong C / C++

Thuật toán tìm kiếm nhị phần (Binary Search) trong C / C++

Thuật toán tìm kiếm nhị phần (Binary Search) trong C / C++

Thuật toán tìm kiếm tuyến tính (Linear Search) trong C / C++

Thuật toán tìm kiếm tuyến tính (Linear Search) trong C / C++

Thuật toán kiểm tra năm nhuận trong C / C++

Thuật toán kiểm tra năm nhuận trong C / C++

Thuật toán kiểm tra số chẵn lẻ trong C / C++

Thuật toán kiểm tra số chẵn lẻ trong C / C++

Thuật toán tính lũy thừa trong C / C++

Thuật toán tính lũy thừa trong C / C++

Top