[Video Summary] Ch. 1.12 while and repeat while loops in Swift (SwiftUI course 2025)
Mô tả nhanh
Video này hướng dẫn về vòng lặp while và repeat while trong Swift, cách chúng giúp tránh lặp lại các cụm từ và hình ảnh trong ứng dụng iOS/macOS.
Video
Mô tả chi tiết
Video này hướng dẫn về vòng lặp while
và repeat while
trong Swift, cách chúng giúp tránh lặp lại các cụm từ và hình ảnh trong ứng dụng iOS/macOS.
Nội dung chi tiết bao gồm:
- Giới thiệu về vấn đề:
- Trong ứng dụng hiển thị ngẫu nhiên ảnh và câu, có thể xảy ra trường hợp lặp lại ảnh hoặc câu khi người dùng bấm nút nhiều lần.
- Cần sử dụng vòng lặp
while
vàrepeat while
để tránh điều này.
- Vòng lặp
while
:- Tạo một playground mới để thử nghiệm.
- Mô phỏng việc tung xúc xắc 4 mặt, không muốn kết quả trùng với lần tung trước.
- Dùng biến
lastRoll
vànewDiceRoll
để lưu kết quả. - Kiểm tra nếu
newDiceRoll
bằnglastRoll
, thực hiện lại việc tạo số ngẫu nhiên. - Vấn đề: code sẽ bị sai nếu lặp lại số ngay sau lần lặp đầu tiên.
- Giải pháp: sử dụng vòng lặp
while
để kiểm tra điều kiện và lặp lại nếu cần. - Cấu trúc vòng lặp
while
:while (condition) { // code }
. - Vòng lặp chỉ thực hiện code bên trong nếu điều kiện là
true
. Sau đó, nó quay lại kiểm tra điều kiện một lần nữa. Nếu điều kiện vẫntrue
, vòng lặp tiếp tục. - Nếu điều kiện là
false
, vòng lặp kết thúc.
- Thử thách với vòng lặp
while
:- Viết code để tung xúc xắc 6 mặt cho đến khi ra kết quả là 6.
- In ra số lần tung cho đến khi đạt được kết quả là 6.
- Sử dụng biến
diceRoll
vàrollCount
. - Sử dụng vòng lặp
while
để kiểm tra điều kiệndiceRoll != 6
.
- Vòng lặp vô hạn:
- Cần có điều kiện dừng (terminating condition) cho vòng lặp
while
. - Nếu điều kiện luôn
true
, sẽ tạo ra vòng lặp vô hạn, khiến chương trình treo hoặc crash. - Ví dụ:
while (diceRoll != 7)
sẽ tạo ra vòng lặp vô hạn (vì xúc xắc chỉ có 6 mặt). - Tip: nên dùng
print()
bên trong vòng loop để kiểm tra nếu nghi ngờ có loop vô hạn
- Cần có điều kiện dừng (terminating condition) cho vòng lặp
- Vòng lặp
repeat while
:- Vòng lặp
repeat while
khác vớiwhile
ở chỗ nó thực hiện code trongrepeat {}
ít nhất một lần, sau đó mới kiểm tra điều kiệnwhile ()
. - Cấu trúc:
repeat { // code } while (condition)
. - Có thể viết lại code xúc xắc ở trên bằng vòng lặp repeat while, giúp giảm bớt một ít code
- Vòng lặp
- Khai báo biến không khởi tạo:
- Có thể khai báo biến mà không cần khởi tạo giá trị ngay. Cần đảm bảo trước khi dùng biến phải có giá trị gán cho nó.
- Demo: chỉ khai báo
var diceRoll: Int
mà không gán giá trị. - Lỗi sẽ phát sinh nếu cố tình truy cập biến chưa có giá trị.
- Xcode sẽ báo lỗi để giúp tránh lỗi khi runtime.
- Vấn đề sẽ xảy ra nếu dùng
while
loop vì biến được check ngay từ đầu.
- Áp dụng vào ứng dụng:
- Thay đổi ứng dụng "Ur awesome" để không lặp lại tin nhắn hoặc hình ảnh.
- Cần giữ lại số tin nhắn và hình ảnh cuối cùng đã hiển thị trong biến
lastMessageNumber
vàlastImageNumber
- Tạo state variable
@State private var lastMessageNumber = -1
và@State private var lastImageNumber = -1
- Trong action của button, tạo vòng lặp
while
để tạo số ngẫu nhiên mới cho đến khi số khác vớilastMessageNumber
vàlastImageNumber
. - Dùng
repeat while
để thay thế vòng lặpwhile
nếu muốn
Video kết thúc bằng việc khuyến khích người xem tiếp tục học tập và rèn luyện kỹ năng lập trình.
Chúc bạn học tập hiệu quả!