[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
whilevà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
lastRollvànewDiceRollđể lưu kết quả. - Kiểm tra nếu
newDiceRollbằ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
diceRollvà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 whilekhá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: Intmà 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
whileloop 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
lastMessageNumbervàlastImageNumber - Tạo state variable
@State private var lastMessageNumber = -1và@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ớilastMessageNumbervàlastImageNumber. - Dùng
repeat whileđể thay thế vòng lặpwhilenế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ả!
