Swift trong khi và lặp lại trong khi Vòng lặp (Với các ví dụ)

Trong bài này, bạn sẽ học cách tạo vòng lặp while và lặp lại… while trong lập trình Swift.

Trong bài trước, chúng ta đã tìm hiểu về vòng lặp for-in để chạy một tập hợp các tác vụ trong một số lần nhất định. Trong bài viết này, bạn sẽ học cách sử dụng whilerepeat… whilethay thế cho vòng lặp for-in khi số lần lặp không xác định.

Vòng lặp while thực hiện một tập hợp các câu lệnh cho đến khi một điều kiện trở thành false. Các loại vòng lặp này được sử dụng tốt nhất khi không biết số lần lặp trước khi lần lặp đầu tiên bắt đầu. Swift cung cấp hai loại vòng lặp while:

1. Swift trong khi vòng lặp

Vòng lặp này đánh giá điều kiện của nó khi bắt đầu mỗi lần đi qua vòng lặp.

Cú pháp của vòng lặp while là:

 while (TestExpression) ( // statements )

Vòng lặp while hoạt động như thế nào?

Đây TestExpressionlà một biểu thức boolean.

Nếu TestExpressionđược đánh giá là true,

  • các câu lệnh bên trong vòng lặp while được thực thi.
  • TestExpressionđược đánh giá lại.

Quá trình này tiếp tục cho đến khi TestExpressionđược đánh giá là false. Nếu TestExpressionđể đánh giá false, trong khi vòng lặp kết thúc.

Lưu đồ Vòng lặp trong khi

Ví dụ 1: Vòng lặp trong khi

 var currentLevel:Int = 0, finalLevel:Int = 5 let gameCompleted = true while (currentLevel <= finalLevel) ( //play game if gameCompleted ( print("You have passed level (currentLevel)") currentLevel += 1 ) ) print("outside of while loop")

Khi bạn chạy chương trình, đầu ra sẽ là:

 Bạn đã vượt qua cấp độ 0 Bạn đã vượt qua cấp độ 1 Bạn đã vượt qua cấp độ 2 Bạn đã vượt qua cấp độ 3 Bạn đã vượt qua cấp độ 4 Bạn đã vượt qua cấp độ 5 bên ngoài vòng lặp while 

Trong chương trình trên, biến currentLevel và finalLevel được khởi tạo thành 0 và hằng số gameCompleted được khởi tạo thành true.

Trong mỗi lần lặp của vòng lặp while, nó sẽ kiểm tra điều kiện currentLevel <= finalLevel. Nếu điều kiện trả về true, các câu lệnh bên trong vòng lặp while được thực thi nếu không thì vòng lặp kết thúc.

Các bước thực hiện
Lặp lại Điều kiện (currentLevel <= finalLevel) Đầu ra
1 0 <= 5 (đúng) Bạn đã vượt qua cấp độ 0
2 1 <= 5 (đúng) Bạn đã vượt qua cấp độ 1
3 2 <= 5 (đúng) Bạn đã vượt qua cấp độ 2
4 3 <= 5 (đúng) Bạn đã vượt qua cấp 3
5 4 <= 5 (đúng) Bạn đã vượt qua cấp độ 4
6 5 <= 5 (đúng) Bạn đã vượt qua cấp độ 5
7 6 <= 5 (sai) bên ngoài vòng lặp while

2. Lặp lại trong khi Vòng lặp

Vòng lặp này đánh giá điều kiện của nó ở cuối mỗi lần đi qua vòng lặp. Vòng lặp lặp lại… while tương tự như vòng lặp while với một điểm khác biệt chính. Phần thân của vòng lặp lặp lại… while được thực hiện một lần trước khi biểu thức kiểm tra được kiểm tra.

Cú pháp của vòng lặp lặp lại… while là:

 repeat ( // statements… ) while (testExpression)

Cách lặp lại… vòng lặp while hoạt động?

Phần thân của vòng lặp lặp lại… while được thực hiện một lần (trước khi kiểm tra biểu thức kiểm tra). Chỉ khi đó, testExpression mới được kiểm tra.

Nếu testExpression được đánh giá là true, các câu lệnh bên trong phần thân của vòng lặp sẽ được thực thi và testExpression được đánh giá lại. Quá trình này tiếp tục cho đến khi testExpression được đánh giá false.

Khi testExpression là false, vòng lặp lặp lại… while kết thúc.

Lưu đồ lặp lại… trong khi Vòng lặp

Ví dụ 2: Lặp lại trong khi Vòng lặp

 var currentLevel:Int = 0, finalLevel:Int = 5 let gameCompleted = true repeat ( //play game if gameCompleted ( print("You have passed level (currentLevel)") currentLevel += 1 ) ) while (currentLevel <= finalLevel) print("outside of repeat while loop") 

Khi bạn chạy chương trình, đầu ra sẽ là:

 Bạn đã vượt qua cấp độ 0 Bạn đã vượt qua cấp độ 1 Bạn đã vượt qua cấp độ 2 Bạn đã vượt qua cấp độ 3 Bạn đã vượt qua cấp độ 4 Bạn đã vượt qua cấp độ 5 bên ngoài vòng lặp lặp lại while 

Trong ví dụ trên, lần đầu tiên các câu lệnh bên trong vòng lặp thực thi. Và đối với lần lặp tiếp theo, nó sẽ kiểm tra điều kiện currentLevel <= finalLevel.

Nếu điều kiện trả về true, các câu lệnh bên trong vòng lặp while được thực thi nếu không thì vòng lặp kết thúc.

Các bước thực hiện
Lặp lại Điều kiện (currentLevel <= finalLevel) Đầu ra
1 0 <= 5 (đúng) Bạn đã vượt qua cấp độ 0
2 1 <= 5 (đúng) Bạn đã vượt qua cấp độ 1
3 2 <= 5 (đúng) Bạn đã vượt qua cấp độ 2
4 3 <= 5 (đúng) Bạn đã vượt qua cấp 3
5 4 <= 5 (đúng) Bạn đã vượt qua cấp độ 4
6 5 <= 5 (đúng) Bạn đã vượt qua cấp độ 5
7 6 <= 5 (sai) ngoài vòng lặp lặp lại while

Mặc dù cả vòng lặp whilerepeat whilevòng lặp đều có các bước thực thi giống nhau, nhưng điều kiện currentLevel <= finalLevel trên repeat whilevòng lặp chỉ được thực hiện sau khi thực hiện các câu lệnh bên trong nó.

Nhưng trong while, điều kiện được kiểm tra ở đầu trước khi thực hiện các câu lệnh bên trong nó.

3. Vòng lặp vô hạn trong khi

Nếu biểu thức kiểm tra không bao giờ đánh giá falselà phần thân của whilerepeat… whilevòng lặp được thực thi vô số lần.

Ví dụ 3: Vòng lặp while vô hạn

 while (true) ( print("Hello, World!") )
 repeat ( print("Hello, World!") ) while (true)

Khi bạn chạy chương trình, đầu ra sẽ là:

Chào thế giới! Chào thế giới!…

Khi bạn chạy chương trình, cả hai vòng lặp đều thực hiện print("Hello, World!")câu lệnh với số lần vô hạn. Vì vậy, bạn có thể thấy đầu ra liên tục Hello, World! trong bảng điều khiển.

thú vị bài viết...