1. Cú pháp vòng lặp while trong Swift
Vòng lặp while hoạt động theo quy tắc sẽ kiểm tra điều kiện trước rồi mới lặp. Nếu thỏa điều kiện thì những câu lệnh bên trong vòng lặp sẽ được thực hiện, ngược lại thì vòng lặp sẽ dừng ngay lập tức.
Cú pháp như sau:
1
2
3
|
while condition { // your statements } |
Trong đó condition là điều kiện để lặp. Nếu:
- condition có giá trị TRUE thì lần lặp sẽ thực hiện
- condition có giá trị FALSE thì vòng lặp kết thúc
Xem lược đồ hoạt động của vòng lặp while như sau:
Ví dụ: Sử dụng vòng lặp while để in ra các số từ 1 đến 10.
Với bài này nếu sử dụng vòng lặp for thì cực kì đơn giản, nhưng ở đây bài toán muốn vòng lặp while nên mình sẽ giải như sau:
1
2
3
4
5
|
var i = 1 while i <= 10 { print(i) i = i + 1 } |
Ở đây đoạn code i = i + 1
cực kì quan trọng. Nếu không có dòng này thì chương trình sẽ bị lặp vô hạn, đây là lỗi rất nghiêm trọng vì nó sẽ gây chết cả ứng dụng vì máy tính không đủ tài nguyên để xử lý.
Sau mỗi lần lặp thì biến i sẽ tăng lên 1 đơn vị, vì vậy ở những lần lặp tiếp theo i
sẽ tăng lên 1. Cứ như vậy đến lần thứ 10 lặp xong thì i có giá trị là 11, lúc này điều kiện lặp không đúng nữa nên kết thúc.
2. Ví dụ vòng lặp while trong Swift
Quay lại bài toán năm xưa, mình sẽ viết chương trình in ra các số chẵn từ 1 đến 1000 nhé.
Với bài này thì ta cũng khai báo một biến i
dùng để điều khiển vòng lặp.
Để in ra các số chẵn thì ta sẽ lặp từ 2 đến 1000 với bước nhảy là 2.
1
2
3
4
5
|
var i = 2 while i <= 1000 { print(i) i = i + 2 } |
Cách giải này là tối ưu nhất vì bạn chỉ lặp đúng 500 lần. Vẫn còn một cách giải khác, đó là lặp từ 1 đến 1000 với bước nhảy là 1, sau đó sử dụng lệnh if để kiểm tra và in ra các số chẵn mà thôi.
1
2
3
4
5
6
|
var i = 1 while i <= 1000 { if (i % 2 == 0) print(i) i = i + 1 } |
Rõ ràng cách thứ hai rất phức tạp.
Trên là cú pháp và cách sử dụng vòng lặp while trong Swift. Bạn cần lưu ý rằng đây là vòng lặp rất dễ gây ra tình trạng lặp vô hạn, vì vậy bạn cần phải kiểm tra điểm dừng một cách chi tiết, nếu không toàn bộ ứng dụng của bạn sẽ bị chết.
Cảm ơn các bạn đã theo dõi bài viết này.
Theo: freetuts.net