06/04/2021, 14:47

án tử ba ngôi trong Swift - Swift căn bản

Trong bài này mình sẽ giới thiệu toán tử ba ngôi trong Swift, đây là một loại toán tử dùng để rẻ nhánh chương trình, thường dùng trong những điều kiện đơn giản để gán giá trị cho biến. 1. Toán tử ba ngôi trong Swift là gì? Trong swift, toán tử ba ngôi (? :) sẽ thực hiện như một lệnh if, chỉ có ...

Trong bài này mình sẽ giới thiệu toán tử ba ngôi trong Swift, đây là một loại toán tử dùng để rẻ nhánh chương trình, thường dùng trong những điều kiện đơn giản để gán giá trị cho biến.

1. Toán tử ba ngôi trong Swift là gì?

Trong swift, toán tử ba ngôi (? :) sẽ thực hiện như một lệnh if, chỉ có một đặc điểm là nó trông đơn giản và dùng để viết tắt nhanh trong trường hợp bài toán đơn giản.

Cú pháp của loại toán tử này như sau:

condition ? true_expression : false_expression

Ta gọi ba ngôi vì nó có ba thành phần chính như sau:

  • condition là điều kiện cần kiểm tra
  • true_expression được chạy nến condition đúng
  • ngược lại sẽ chạy ở false_expression

Bây giờ chúng ta sẽ thấy chức năng của toán tử ba ngôi trong ngôn ngữ lập trình Swift bằng sơ đồ thuật toán sau:

toan tu ba ngoi png

2. Ví dụ toán tử ba ngôi trong Swift

Không gì dễ hiểu nhất bằng ví dụ. Bây giờ ta sẽ làm một ví dụ đơn giản nhất đó là gán giá trị cho một biến nhưng tùy vào trường hợp mà giá trị sẽ khác nhau.

Bài toán như sau: Cho biến age, và message, hãy gán giá trị cho message nếu:

  • age > 50 thì nội dung là "bạn đã già rồi"
  • ngược lại nội dung sẽ là "bạn còn trẻ"

Trước tiên mình sẽ giải bằng lệnh if:

var age: Int = 40
var message : String = ''
        
if age > 50 {
    message = "Bạn đã già rồi"
}
else {
    message = "Bạn còn trẻ"
}

Nhin rất cồng kềnh phải không các bạn. Mình sẽ sử dụng toán tử ba ngôi như sau:

var age: Int = 40
var message : String = (age > 50) ? ("Bạn đã già rồi") : ("Bạn còn trẻ")

Nhìn đoạn code này dễ đọc hơn rất nhiều phải không các bạn.

Như vậy là mình đã giới thiệu xong toán tử ba ngôi trong Swift. Cấu trúc này rất hay và nên áp dụng vào dự án của bạn trong trường hợp cần thiết nhé.

Bùi Văn Nam

27 chủ đề

7090 bài viết

0