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 conditionPerhatikan 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.
Tantangan
MudahKamu sedang membuat simulasi validasi kata sandi sederhana.
- Buat variabel bernama
passworddan tetapkan string kosong (""). - Buat variabel lain bernama
correctPassworddan tetapkan"secure123". - Buat tabel bernama
attemptsyang berisi percobaan kata sandi berikut secara berurutan:"password""123456""admin""secure123"
- Buat variabel bernama
indexdan tetapkan1. Kamu akan menggunakannya untuk melacak percobaan yang sedang dilakukan. - Gunakan perulangan
repeat-untiluntuk:- Tetapkan percobaan saat ini ke
passwordmenggunakanattempts[index]. Ini membaca item pada posisiindexdari tabel - Cetak
passwordsaat ini - Tambah
indexsebesar 1 (misalnya,index = index + 1) untuk berpindah ke percobaan berikutnya
- Tetapkan percobaan saat ini ke
- Perulangan harus berhenti hanya ketika
passwordsama dengancorrectPassword.
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 correctPasswordPelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dasar-Dasar
4Operator 2: Relasional dan Logika
Operator KesetaraanOperator RelasionalOperator 'and'Operator 'or'Operator 'not'Evaluasi Hubung SingkatNilai Truthy dan FalsyRangkuman: Logika Sederhana7Logika Percabangan Dasar
Pernyataan if-thenPernyataan if-then-elsePernyataan elseifRangkuman: Peti Harta Karun10Tabel Bagian 1: Gaya list
Apa itu Tabel?Membuat TabelMengakses Elemen berdasarkan IndeksMengubah Elemen berdasarkan IndeksOperator Panjang '#'table.insert()table.remove()Ringkasan: Kelola Anggota Pesta13Proyek: Toko Ramuan Sederhana
Menyiapkan ProyekMenambahkan Ramuan2Variabel dan Tipe Data
Apa Itu Variabel?AngkastringBooleanNilai 'nil'Fungsi type()Konvensi PenamaanUlasan: Profil Karakter5Output Dasar
Mencetak Nilai LiteralMencetak VariabelMencetak Beberapa NilaiMenggabungkan string dan VariabelFungsi tostring()inputKonversi TipeRangkuman: Laporan StatusRangkuman: Sampai 1208Dasar Manipulasi string
string.len()string.upper & string.lowerstring.sub()string.rep()string.find()Rangkuman: Format Nama Pengguna3Operator 1 Aritmetika & Penggabungan
Operator AritmetikaOperator ModuloOperator PemangkatanPenggabungan stringPrioritas OperatorRingkasan: Perhitungan Sederhana6Proyek: Menampilkan Statistik Karakter
Pesan SambutanDeklarasikan Statistik Karakter9Dasar-Dasar Fungsi
Mendeklarasikan FungsiMemanggil FungsiFungsi dengan ParameterFungsi dengan Beberapa ParameterPernyataan 'return'Rekap: Kalkulator Luas12Dasar-Dasar Perulangan
while looprepeat-until loopfor loop numerikfor loop dengan langkahPernyataan 'break'Rangkuman: Hitung MundurLatihan sendiri: Compiler Lua online