Mảng trong swift – Swift Arrays (Bài 5)

Mảng trong swift được sử dụng để lưu trữ danh sách các giá trị có cùng kiểu dữ liệu. Nếu bạn khai báo một mảng theo dạng biến, điều đó có nghĩa là bạn có thể thay đổi nó như thêm, xoá, hoặc thay đổi giá trị của các phần tử trong mảng. Nhưng nếu bạn khai báo mảng theo dạng hằng số, thì mảng này không thể thay đổi.

Mảng trong swift – Tạo mảng (Creating Arrays)

Cách 1: Bạn có thể tạo một mảng rỗng theo cú pháp bên dưới

var arrayName = [DataType]()

Cách 2: Tạo một mảng có chỉ định kích thước và giá trị khởi tạo cho các phần tử

var arrayName = [DataType](count: NumbeOfElements, repeatedValue: InitialValue)

Ví dụ về tạo mảng trong swift có 3 phần tử số nguyên và giá trị khởi tạo cho các phần tử là 0

var arrInts = [Int](count: 3, repeatedValue: 0)

Một ví dụ khác về tạo mảng trong swift có 3 phần tử và khởi tạo giá trị cho các phần tử

var arrInts:[Int] = [10, 20, 30]

Mảng trong swift – Truy cập mảng (Accessing Arrays)

Bạn có thể lấy giá trị của các phần tử trong mảng sử dụng chỉ số theo cú pháp sau

var element = arrayName[index]

Ở đây chỉ số (index) bắt đầu từ 0, điều đó có nghĩa là phần tử đầu tiên được truy cập với chỉ số là 0, phần tử thứ 2 được truy cập với chỉ số là 1 và …

Ví dụ

import UIKit

var arrInts = [Int](count: 3, repeatedValue: 7)

var element = arrInts[0]

print("Giá trị của phần tử đầu tiên là \(element)")
print("Giá trị của phần tử thứ hai là \(arrInts[1])")
print("Giá trị của phần tử thứ ba là \(arrInts[2])")

Khi chạy chương trình trên sử dụng playground, chúng ta sẽ nhận được kết quả

(Trong Playground -> chọn View -> chọn Debug Area -> chọn Show Debug Area)

mang trong swift

Mảng trong swift – Sửa đổi mảng (Modifying Arrays)

Bạn có thể sử dụng phương thức append() hoặc toán tử (+=) để thêm mới một phần tử vào cuối mảng. Sau đây là một ví dụ

import UIKit

var arrInts = [Int]()

arrInts.append(10)
arrInts.append(20)
arrInts += [30]

var element = arrInts[0]

print("Giá trị của phần tử thứ nhất là \(element)")
print("Giá trị của phần tử thứ hai là \(arrInts[1])")
print("Giá trị của phần tử thứ ba là \(arrInts[2])")

Khi chạy chương trình trên sử dụng playground, chúng ta sẽ nhận được kết quả

Giá trị của phần tử thứ nhất là 10
Giá trị của phần tử thứ hai là 20
Giá trị của phần tử thứ ba là 30

Ngoài ra, bạn có thể thay đổi giá trị cho phần tử đã tồn tại bằng giá trị mới dựa vào chỉ số như ví dụ bên dưới

import UIKit

var arrInts = [Int]()

arrInts.append(10)
arrInts.append(20)
arrInts += [30]

// Modify last element
arrInts[2] = 50

var element = arrInts[0]

print("Giá trị của phần tử thứ nhất là \(element)")
print("Giá trị của phần tử thứ hai là \(arrInts[1])")
print("Giá trị của phần tử thứ ba là \(arrInts[2])")

Khi chạy chương trình trên sử dụng playground, chúng ta sẽ nhận được kết quả

Giá trị của phần tử thứ nhất là 10
Giá trị của phần tử thứ hai là 20
Giá trị của phần tử thứ ba là 50

Mảng trong swift – Duyệt mảng (Iterating Over an Array)

Bạn có thể sử dụng for…in để truy xuất toàn bộ giá trị của các phần tử trong mảng như ví dụ bên dưới

import UIKit

var arrStrs = [String]()

arrStrs.append("Apple")
arrStrs.append("Microsoft")
arrStrs += ["Google"]

for item in arrStrs {
   print(item)
}

Khi chạy chương trình trên sử dụng playground, chúng ta sẽ nhận được kết quả

Apple
Microsoft
Google

Bạn cũng có thể sử dụng hàm enumerate() để trả về chỉ số cùng với giá trị của phần tử như ví dụ sau

import UIKit

var arrStrs = [String]()

arrStrs.append("Apple")
arrStrs.append("Microsoft")
arrStrs += ["Google"]

for (index, item) in arrStrs.enumerate() {
   print("Giá trị của phần tử thứ \(index) là \(item)")
}

Khi chạy chương trình trên sử dụng playground, chúng ta sẽ nhận được kết quả

Giá trị của phần tử thứ 0 là Apple
Giá trị của phần tử thứ 1 là Microsoft
Giá trị của phần tử thứ 2 là Google

Tổng kết mảng trong swift

  • Tạo mảng
  • Truy cập mảng
  • Sửa đổi mảng
  • Duyệt mảng

Mảng trong swift – Bài tập thực hành

Bài thực hành số 1: Biến đổi các số dương trong mảng thành số 1, các số còn lại thành số 0.

Bài thực hành số 2: Số dương bé nhất, số âm lớn nhất trong mảng.

Bài thực hành số 3: Vị trí đầu tiên của số lẻ, vị trí cuối cùng của số chẵn trong mảng.

Bài thực hành số 4: Đổi chỗ giữa số lẻ đầu tiên và số chẵn cuối cùng của mảng nếu có.

Bài thực hành số 5: Sắp xếp thành một dãy tăng dần. Nhập số nguyên x, chèn x vào tại vị trí thích hợp để dãy vẫn là một dãy tăng.

Bài thực hành số 6: Kiểm tra một dãy có toàn là các số chính phương hay không

Xem giáo trình môn lập trình Swift