C++ | Toán tử 3 ngôi (ternary operator)

Lập trình C++ cơ bản, nâng cao

Toán tử ba ngôi (ternary operator) trong C++ là một cách viết ngắn gọn cho câu lệnh if-else. Toán tử này có cú pháp như sau:

Biến = (điều kiện if else) ? biểu thức đúng (Value 1) : biểu thức sai (Value 2);

Ví dụ cụ thể:

Giả sử chúng ta muốn xác định số lớn hơn trong hai số a và b:

#include <iostream>
using namespace std;

int main() {
    int a = 10;
    int b = 20;

    int max = (a > b) ? a : b;

    cout << "So lon hon la: " << max << endl;

    return 0;
}

Giải thích:

  • (a > b): đây là biểu thức điều kiện.
  • a: đây là biểu thức nếu điều kiện đúng.
  • b: đây là biểu thức nếu điều kiện sai.

Trong ví dụ này, nếu a lớn hơn b, giá trị của max sẽ là a, ngược lại giá trị của max sẽ là b. Kết quả là chương trình sẽ in ra So lon hon la: 20.

Toán tử ba ngôi thường được sử dụng để viết các câu lệnh điều kiện ngắn gọn và dễ đọc hơn.

Thực hành toán tử 3 ngôi #1

Viết chương trình nhập vào 2 số nguyên a và b từ bàn phím, sau đó sử dụng toán tử 3 ngôi để tìm số lớn hơn và in kết quả ra màn hình.

Lưu ý: hãy sử dụng toán tử 3 ngôi thay vì if else để làm bài này nhé.

Giải:

#include <iostream>

int main()
{
    int a, b;

    std::cin >> a >> b;

    int max = (a > b)? a : b;

    std::cout << max;

    return 0;
}

Thực hành toán tử 3 ngôi #2

Viết chương trình nhập vào 3 số nguyên ab và c từ bàn phím, sau đó sử dụng toán tử 3 ngôi để tìm số lớn nhất và in kết quả ra màn hình.

Lưu ý: hãy sử dụng toán tử 3 ngôi thay vì if else để làm bài này nhé.

Giải:

#include <iostream>

int main()
{
int a, b, c;

std::cin >> a >> b >> c;

int max = (a > b && a > c) ? a : (b > c) ? b : c;

std::cout << max;

return 0;
}

Thực hành toán tử 3 ngôi #3

Viết chương trình nhập vào 1 số nguyên n từ bàn phím, sau đó sử dụng toán tử 3 ngôi để in ra kết quả của phép tính n * 2 nếu n là số chẵn, và n * 3 nếu n là số lẻ.

Lưu ý: hãy sử dụng toán tử 3 ngôi thay vì if else để làm bài này nhé.

Giải:

#include <iostream>

int main()
{
    int n;

    std::cin >> n;

    int result = (n % 2 == 0) ? n * 2 : n * 3;

    std::cout << result;

    return 0;
}

Nhận xét

Mới hơn Cũ hơn