Lặp lại mã với vòng lặp while

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.

Nhiều điều trong khoa học máy tính hoặc phát triển trò chơi thường lặp lại. Ví dụ, một ứng dụng có thể cập nhật nội dung trong một nguồn cấp dữ liệu mỗi vài giây, hoặc một trò chơi có thể thưởng cho người chơi một phần thưởng mỗi ngày họ đăng nhập. Để thực hiện hành vi này, các lập trình viên thường sử dụng vòng lặp.

Trong khoa học máy tính, một vòng lặp là một mẫu mã lặp lại một tập hợp các hướng dẫn, thường cho đến khi một điều kiện cụ thể được đáp ứng. Để thực hành điều này, bạn sẽ lập trình một phần thay đổi màu sắc vô thời hạn. Những bài học sau sẽ cho thấy cách dừng việc lặp lại.

Thiết lập phần và kịch bản

Sử dụng bất kỳ dự án Roblox nào cho bài tập này. Khi hoàn tất, phần này có thể được sử dụng như một cách để trang trí môi trường.

  1. Tạo một phần mới với một tên mô tả. Bài học này sử dụng LoopingPart.

  2. Trong ServerScriptService, thêm một kịch bản mới có tên LoopingScript.

  3. Trong kịch bản, xóa Hello World và viết một nhận xét nêu rõ mục đích của kịch bản này.


    -- Thay đổi màu sắc của LoopingPart mỗi vài giây

Sử dụng biến để lưu trữ một phần

Biến cũng có thể giữ tham chiếu đến các đối tượng ngoài chuỗi. Ví dụ, khi một kịch bản biết tham chiếu đến một phần, kịch bản có thể thay đổi nó.

Thay vì gõ workspace.NameOfYourPart nhiều lần, toàn bộ dòng đó có thể được lưu trữ trong một biến cục bộ. Biến cục bộ được tạo ra bằng cách gõ local và sau đó là tên của biến.

Ví dụ: local nameOfVariable.

  1. Dưới nhận xét, tạo một biến cục bộ bằng cách gõ local loopingPart.


    -- Thay đổi màu sắc của LoopingPart mỗi vài giây
    local loopingPart
  2. Đặt biến thành phần vòng lặp bằng cách gõ = workspace.LoopingPart trên cùng một dòng. Nhớ rằng toán tử = đặt giá trị của một biến thành bất cứ thứ gì ở bên phải nó.


    -- Thay đổi màu sắc của LoopingPart mỗi vài giây
    local loopingPart = workspace.LoopingPart

Vòng lặp while

Trước khi tạo vòng lặp while cho phần thay đổi màu, điều quan trọng là giải thích cú pháp của nó. Một vòng lặp while có ba thành phần:

  • Từ khóa while.
  • Một điều kiện, luôn xuất hiện sau từ khóa.
  • Các hướng dẫn, nằm giữa các từ khóa doend.

Trong các vòng lặp, điều kiện có thể là một loạt các câu lệnh logic. Một số ví dụ có thể là nếu hai số giống nhau. Một vòng lặp sẽ chạy nếu điều kiện của nó là đúng.

Lưu ý trong mẫu bên dưới, điều kiện là đúng, có nghĩa là vòng lặp này sẽ chạy mãi mãi. Trong những bài học sau, bạn sẽ lập trình các điều kiện cụ thể dừng lại.


while true do
print("Vòng lặp này đang chạy")
end

Lập trình một vòng lặp while

Tiếp theo, bạn sẽ thiết lập vòng lặp while cho phần thay đổi màu.

  1. Trên dòng tiếp theo, gõ while true do. Sau đó, nhấn Enter để tự động hoàn thành và thêm từ end.


    -- Thay đổi màu sắc của loopingPart mỗi vài giây
    local loopingPart = workspace.LoopingPart
    -- Mã lặp
    while true do
    end

Thêm mã vào vòng lặp

Với vòng lặp while đã được tạo, các hướng dẫn có thể được thêm vào để thay đổi màu sắc của phần theo thời gian. Bên trong vòng lặp, thêm một dòng mã cho mỗi màu. Mỗi màu sẽ sử dụng các giá trị RGB, một cách lưu trữ màu sắc dưới dạng số trong khoa học máy tính.

  1. Giữa while true doend, đặt thuộc tính Color của phần thành Color3.fromRGB().


    local loopingPart = workspace.LoopingPart
    while true do
    loopingPart.Color = Color3.fromRGB()
    end
  2. Việc thiết lập màu có thể được thực hiện bằng cách sử dụng một bộ chọn màu trong Studio. Để làm điều đó, nhấp chuột trái vào trong () bên cạnh fromRGB. Sau đó, nhấp vào biểu tượng bánh xe màu. Khi bạn có một màu mong muốn, nhấn OK để tự động thêm giá trị màu vào mã.


    local loopingPart = workspace.LoopingPart
    while true do
    loopingPart.Color = Color3.fromRGB(82, 227, 255)
    end

Làm cho kịch bản chờ

Nếu bạn thêm một dòng mã thay đổi màu thứ hai ngay bây giờ, nó sẽ thay đổi màu của viên gạch quá nhanh đến mức bạn có thể không thấy màu đầu tiên đi qua. Để làm cho kịch bản chờ trước khi chạy dòng mã tiếp theo, hãy sử dụng hàm task.wait().

  1. Trên dòng sau khi thay đổi màu gạch, gõ task.wait(3). Bất kỳ số nào được đặt bên trong () là số giây mà kịch bản sẽ chờ.


    local loopingPart = workspace.LoopingPart
    while true do
    loopingPart.Color = Color3.fromRGB(82, 227, 255)
    task.wait(3)
    end
  2. Dưới hàm chờ, lặp lại quá trình thêm một màu mới. Kết thúc với một hàm chờ bổ sung.


    while true do
    loopingPart.Color = Color3.fromRGB(82, 227, 255)
    task.wait(3)
    loopingPart.Color = Color3.fromRGB(177, 52, 255)
    task.wait(3)
    end
  3. Kiểm tra mã và xem liệu các màu có thay đổi hay không.

Ghi chú xử lý sự cố
Tại thời điểm này, nếu phần thay đổi màu không hoạt động như mong đợi, hãy thử một trong những điều sau đây.

Vấn đề: Các màu bị bỏ qua

  • Đảm bảo bạn có một hàm chờ giữa mỗi lần thay đổi màu, đặc biệt là ở dòng cuối cùng.
  • Kiểm tra xem tất cả mã thay đổi màu và hàm chờ có nằm giữa các phần while true doend hay không.

Vấn đề: Phần vẫn màu xám hoặc không thay đổi màu như mong đợi

  • Đảm bảo tất cả các giá trị RGB có số từ 0 đến 255, là số nguyên hoặc số thập phân, và được phân tách bởi dấu phẩy.
  • Các số bên trong () của hàm chờ nên lớn hơn 1. Có thể nếu một lần chờ quá ngắn, bạn có thể không thấy màu đó.

Hoàn thiện mã vòng lặp màu


-- Tạo một biến để lưu trữ phần
local loopingPart = workspace.LoopingPart
-- Mã lặp
while true do
-- Thay đổi màu của loopingPart
loopingPart.Color = Color3.fromRGB(82, 227, 255)
-- Chờ 3 giây trước khi thực hiện hướng dẫn tiếp theo
task.wait(3)
loopingPart.Color = Color3.fromRGB(177, 52, 255)
task.wait(3)
end

Tóm tắt

Vòng lặp là một yếu tố chung trong hầu hết các ngôn ngữ máy tính. Chúng được sử dụng để lặp lại các hướng dẫn, đôi khi cho đến khi các điều kiện cụ thể được đáp ứng. Trong bài viết này, vòng lặp while được sử dụng để lặp lại các hướng dẫn mãi mãi. Để tạo một vòng lặp while lặp mãi mãi, hãy sử dụng cú pháp bên dưới, nhớ bao gồm các hướng dẫn giữa các từ khóa doend.


while true do
-- Hướng dẫn
end
©2026 Roblox Corporation. Roblox, logo Roblox và Powering Imagination là các nhãn hiệu đã đăng ký và chưa đăng ký của chúng tôi tại Hoa Kỳ và các quốc gia khác.