Menu
CoddyTech

repeat-until loop

Termasuk bagian Dasar-Dasar dalam perjalanan Lua di Coddy. Pelajaran 72 dari 90.

Lua menawarkan jenis perulangan lain yang disebut repeat-until, dengan karakteristik unik yang membedakannya dari while yang baru saja kamu pelajari. Perbedaan utamanya adalah perulangan repeat-until selalu menjalankan blok kodenya setidaknya sekali, terlepas dari kondisinya.

Sintaksnya terlihat seperti ini:

repeat
    -- kode yang diulang
until condition

Perhatikan bahwa kondisi diperiksa di akhir, setelah kode dijalankan satu kali. Perulangan terus diulang sampai kondisi menjadi true, kebalikan dari while loop yang terus berjalan selama kondisinya true.

Berikut contoh praktis yang menyimulasikan pelemparan dadu sampai kamu mendapatkan angka 6:

local roll = 0

repeat
    roll = math.random(1, 6) -- Mengacak angka antara 1 dan 6
    print("Rolled:", roll)
until roll == 6

print("Finally got a 6!")

Perulangan ini memastikan kamu melempar dadu setidaknya sekali, dan terus melempar hingga kondisi roll == 6 menjadi benar. Perilaku “jalankan terlebih dahulu, periksa kemudian” ini membuat perulangan repeat-until cocok untuk situasi ketika kamu perlu melakukan sesuatu setidaknya sekali sebelum memutuskan apakah akan melanjutkan.

challenge icon

Tantangan

Mudah

Kamu sedang membuat simulasi validasi kata sandi sederhana.

  1. Buat variabel bernama password dan tetapkan string kosong ("").
  2. Buat variabel lain bernama correctPassword dan tetapkan "secure123".
  3. Buat tabel bernama attempts yang berisi percobaan kata sandi berikut secara berurutan:
    • "password"
    • "123456"
    • "admin"
    • "secure123"
  4. Buat variabel bernama index dan tetapkan 1. Kamu akan menggunakannya untuk melacak percobaan yang sedang dilakukan.
  5. Gunakan perulangan repeat-until untuk:
    • Tetapkan percobaan saat ini ke password menggunakan attempts[index]. Ini membaca item pada posisi index dari tabel
    • Cetak password saat ini
    • Tambah index sebesar 1 (misalnya, index = index + 1) untuk berpindah ke percobaan berikutnya
  6. Perulangan harus berhenti hanya ketika password sama dengan correctPassword.

Setiap kali perulangan berjalan, perulangan membaca satu percobaan dari tabel, mencetaknya, lalu beralih ke percobaan berikutnya. Perulangan terus berjalan sampai kata sandi yang benar ditemukan.

Coba sendiri

-- Inisialisasi variabel
local password = ""
local correctPassword = "secure123"

-- list percobaan kata sandi
local attempts = {"password", "123456", "admin", "secure123"}
local index = 1

-- TODO:
-- Gunakan repeat-until loop untuk:
-- 1. Isi percobaan saat ini dengan teks persis dari petunjuk
-- 2. Cetak kata sandi yang dicoba
-- 3. Lanjutkan ke percobaan berikutnya
-- Berhenti saat password cocok dengan correctPassword
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Dasar-Dasar

Latihan sendiri: Compiler Lua online