Trong bài này bạn sẽ được học vòng lặp while trong Swift, đây là vòng lặp rất quen thuộc và thường dùng để lặp trong những trường hợp không biết trước tổng số lần lặp. Ví dụ với bài toán khử đệ quy thì bắt buộc bạn phải sử dụng dạng vòng lặp như while, không thể sử dụng vòng lặp for.
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:
while condition { // your statements }
Trong đó condition là điều kiện để lặp. Nếu:
Bài viết này được đăng tại [kiso.vn]
- 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:
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.
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.
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.
Bài viết liên quan
[CSF-2] Một số thiết lập CSF, LFD
Hôm nay mình sẽ thực hiện một số thiết lập trên CSF Mở file config để sửa đổi một số tính năng dưới /etc/csf/csf.conf Nội dung chính1. Cú pháp vòng lặp while trong Swift2. Ví...
[CSF-1] Tăng bảo mật Server với ConfigServer Firewall (CSF)
Nội dung chính1. Cú pháp vòng lặp while trong Swift2. Ví dụ vòng lặp while trong Swift1. Khái niệm CSF: CSF (ConfigServer & Firewall) là một bộ ứng dụng hoạt động trên Linux như một...
Sử dụng SSH Key với Gitlab và Github
Bài viết này mình sẽ hướng dẫn các bạn tạo ssh key cho Gitlab và Github SSH là gì? Secure Socket Shell là một giao thức mạng dùng để thiết lập kết nối mạng một...
Directory traversal vulnerabilities (phần 4)
Nội dung chính1. Cú pháp vòng lặp while trong Swift2. Ví dụ vòng lặp while trong SwiftV. Phân tích và khai thác các lỗ hổng Directory traversal (tiếp) 5. Bypass lỗ hổng khi trang web...
Directory traversal vulnerabilities (phần 3)
Nội dung chính1. Cú pháp vòng lặp while trong Swift2. Ví dụ vòng lặp while trong SwiftV. Phân tích và khai thác các lỗ hổng Directory traversal 1. Lỗ hổng xảy ra khi sử dụng...
Directory traversal vulnerabilities (phần 2)
Nội dung chính1. Cú pháp vòng lặp while trong Swift2. Ví dụ vòng lặp while trong SwiftIII. Vì sao lỗ hổng Directory traversal xuất hiện? Với mỗi ngôn ngữ lập trình khác nhau, điểm xuất...