Lệnh break trong Swift
Trong bài này mình sẽ giới thiệu một lệnh có công dụng rất hay, đó là lệnh Break trong Swift. Lệnh này thường dùng trong vòng lặp và lênh Switch Case để dừng chương trình.
1. Cú pháp lệnh Switch trong Swift
Trong swift, lệnh break sẽ dừng hoặc kết thúc thực thi các câu lệnh tại ngay lập tức trong luồng hiện tại. Ta có thể sử dụng lệnh break trong câu lệnh Switch để dừng thực thi một Case nào đó, hoặc trong các vòng lặp để dừng vòng lặp.
Điều này khác hoàn toàn với lệnh continue, bởi lệnh continue chỉ bỏ qua lần lặp hiện tại và tiếp tục với lần lặp tiếp theo.
Cú pháp break như sau:
Bài viết này được đăng tại [free tuts .net]
break
Hãy xem một ví dụ khi sử dụng lệnh break trong vòng lặp For-In.
for i in 1...5 { if i == 4 { break } print("i = \(i)") } print("Kết thúc")
Chạy chương trình này bạn sẽ thu được kết quả như sau:
i = 1 i = 2 i = 3 Kết thúc
Ở lần lặp thứ 4 do thỏa điểu kiện ở if i == 4
nên lệnh break được thực thi, vì vậy Swift sẽ thoát khỏi vòng lặp nên tất cả những đoạn code phía dưới đều bị bỏ qua. Cuồi cùng nó in dòng chữ bên ngoài print("Kết thúc")
vì dòng này không nằm ở trong vòng lặp.
2. Các ví dụ với Break trong Swift
Bây giờ ta sẽ làm thêm một vài ví dụ khác với lệnh Break trong Swif. Ở phần 1 mình đã lấy ví dụ với vòng lặp for rồi, vậy thì ở đây mình sẽ tiếp tục với vòng lặp while.
Break trong vòng lặp While
var currentLevel:Int = 1, finalLevel:Int = 2 var isLifeAvailable = true while (isLifeAvailable) { if currentLevel > finalLevel { print("Game hoàn thành") break } //chơi game game và qua level tiếp theo currentLevel += 1 print("Level tiếp theo") } print("Bên ngoài vòng lặp")
Kết quả:
Level tiếp theo Level tiếp theo Game hoàn thành Bên ngoài vòng lặp
Trong ví dụ này nếu không có dòng break thì sẽ bị lắp vô hạn. Lý do là trong thân vòng lặp không hề có đoạn code nào thiết lập isLifeAvailable = false
. Tuy nhiên nhờ lệnh break mà ta giải quyết được bài toán.
Nhìn kỹ hơn thì ta không cần biến isLifeAvailable cũng được, lúc này vòng lặp while sẽ chỉnh lai như sau:
while (true) { /// các đoạn code ]
Break trong vòng lặp lồng nhau
Lệnh break chỉ dừng vòng lặp trong một phạm vi nhất định. Nếu chương trình có nhiều vòng lặp lồng nhau, nếu bạn đặt lệnh break ở vòng lặp nào thì chỉ có vòng lặp đó bị ảnh hưởng bởi Break mà thôi.
for j in 1...2 { for i in 1...5 { if i == 4 { break } print("i = \(i)") } print("j = \(j)") }
Kết quả:
i = 1 i = 2 i = 3 j = 1 i = 1 i = 2 i = 3 j = 2
Trong chương trình trên, câu lệnh break nằm trong if i == 4
chỉ chấm dứt việc thực hiện vòng lặp bên for i in1 ... 5
. Tuy nhiên, nó tiếp tục thực hiện vòng lặp bên ngoài for j in1 ... 2
.
Trường hợp bạn muốn thoát luôn cả vòng lặp bên ngoài thì làm thế nào? Lúc này bạn sẽ dùng label để lệnh Break trỏ tới. Hình ảnh minh họa như sau:
Xem ví dụ sau để hiểu rõ hơn.
outerloop: for j in 1...2{ innerloop: for i in 1...5 { if i == 4 { break outerloop } print("i = \(i)") } print("j = \(j)") }
Break trong Switch Case
Trong swift nếu chúng ta sử dụng câu lệnh break trong câu lệnh case thì nó sẽ ngắt toàn bộ code trong case đó, và lập tức thoát khỏi câu lệnh Switch.
Sau đây là ví dụ về việc sử dụng câu lệnh break trong Switch Case.
func Year(year: Int) -> Bool { switch (year) { case let number where (number % 200) == 0 && (number % 500) != 0: break case let number where (number % 5) == 0: return true default: break } return false } print(Year(2014)) print(Year(2000)) print(Year(1900))
Nếu bạn chưa học về function thì có thể bỏ qua trường hợp này, sau này quay lại học sau nhé.