[Video Summary] Ch. 1.12 while and repeat while loops in Swift (SwiftUI course 2025)

SwiftUI 6 Th02 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

Click vào hình dưới để mở:
Ch. 1.12 while and repeat while loops in Swift (SwiftUI course 2025)

Mô tả chi tiết

Video này hướng dẫn về vòng lặp whilerepeat 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.

Ch. 1.12 while and repeat while loops in Swift (SwiftUI course 2025)

Nội dung chi tiết bao gồm:

  1. 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 whilerepeat while để tránh điều này.
  2. 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 lastRollnewDiceRoll để lưu kết quả.
    • Kiểm tra nếu newDiceRoll bằng lastRoll, 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ẫn true, vòng lặp tiếp tục.
    • Nếu điều kiện là false, vòng lặp kết thúc.
  3. 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 diceRollrollCount.
    • Sử dụng vòng lặp while để kiểm tra điều kiện diceRoll != 6.
  4. 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
  5. Vòng lặp repeat while:
    • Vòng lặp repeat while khác với while ở chỗ nó thực hiện code trong repeat {} ít nhất một lần, sau đó mới kiểm tra điều kiện while ().
    • 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
  6. 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.
  7. Á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 lastMessageNumberlastImageNumber
    • Tạo state variable @State private var lastMessageNumber = -1@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ới lastMessageNumberlastImageNumber.
    • Dùng repeat while để thay thế vòng lặp while 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ả!

Tags