3.8.4 Giới thiệu về toán tử điều kiện

Giờ là thời điểm tốt để chúng tôi giới thiệu với các bạn thêm một toán tử của ngôn ngữ C++, đó là toán tử ?: 

Nó đòi hỏi 3 tham số, cách sử dụng nó như sau →

expression1 ? expression2 : expression3

Toán tử này hoạt động như sau:

  • Tính toán giá trị của expression1
  • Nếu giá trị của expression1 khác 0 thì toán tử sẽ trả về giá trị của expression2, bỏ qua expression3
  • Nếu giá trị của expression1 bằng 0 thì toán tử sẽ trả về giá trị của expression3, bỏ qua expression2

Tức là biểu thức sau:

sẽ tương đương với lệnh điều kiện sau:

Toán tử này được gọi là toán tử 3 ngôi (ternary operator), và đây là toán tử 3 ngôi duy nhất trong C++.

Chúng ta có thể dùng toán tử này trong hàm max hai tham số như sau:

Với hàm max ba tham số thì có thể code như sau:

Trông rất khó đọc phải không ?

Toán tử này không được khuyến khích dùng lồng vào nhau như trong hàm max ba tham số, nó rất rối mắt. Bạn chỉ nên dùng trong trường hợp ngắn gọn như trong hàm max hai tham số.