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 ciri unik yang membedakannya dari while yang baru saja kamu pelajari. Perbedaan utamanya adalah perulangan repeat-until selalu menjalankan blok kodenya setidaknya sekali, apa pun kondisinya.
Sintaksnya terlihat seperti ini:
repeat
-- kode yang akan diulang
until conditionPerhatikan bahwa kondisi diperiksa di akhir, setelah kode dijalankan sekali. Perulangan terus berulang sampai kondisi menjadi true, kebalikan dari perulangan while yang terus berjalan selama kondisi bernilai true.
Berikut contoh praktis yang menyimulasikan pelemparan dadu sampai kamu mendapatkan angka 6:
local roll = 0
repeat
roll = math.random(1, 6) -- Menghasilkan angka acak 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 sampai kondisi roll == 6 menjadi benar. Perilaku “jalankan terlebih dahulu, periksa kemudian” ini membuat perulangan repeat-until sangat 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 atur nilainya menjadi string kosong (""). - Buat variabel lain bernama
correctPassworddan atur nilainya menjadi"secure123". - Buat tabel bernama
attemptsyang berisi percobaan kata sandi berikut secara berurutan:"password""123456""admin""secure123"
- Buat variabel bernama
indexdan atur nilainya menjadi1. Kamu akan menggunakannya untuk melacak percobaan yang sedang kamu lakukan. - Gunakan perulangan
repeat-untiluntuk:- Tetapkan percobaan saat ini ke
passwordmenggunakanattempts[index]. Ini membaca item pada posisiindexdari tabel. - Cetak
passwordsaat ini. - Tambah
indexsebanyak 1 (misalnya,index = index + 1) untuk berpindah ke percobaan berikutnya.
- Tetapkan percobaan saat ini ke
- Perulangan hanya boleh berhenti ketika
passwordsama dengancorrectPassword.
Setiap kali perulangan berjalan, perulangan membaca satu percobaan dari tabel, mencetaknya, lalu berpindah 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 loop repeat-until untuk:
-- 1. Tetapkan percobaan saat ini ke password
-- 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 FalsyRingkasan: Logika Sederhana7Logika Percabangan Dasar
Pernyataan if-thenPernyataan if-then-elsePernyataan elseifUlasan: Peti Harta Karun10Table Bagian 1: Gaya list
Apa Itu Table?Membuat TableMengakses Elemen Berdasarkan IndeksMengubah Elemen Berdasarkan IndeksOperator Panjang '#'table.insert()table.remove()Ulasan: Mengelola Anggota Pesta13Proyek: Toko Ramuan Sederhana
Penyiapan ProyekMenambahkan Ramuan2Variabel dan Tipe Data
Apa Itu Variabel?AngkastringBooleanNilai 'nil'Fungsi type()Konvensi PenamaanRangkuman: Profil Karakter5Output Dasar
Mencetak LiteralMencetak VariabelMencetak Beberapa NilaiMenggabungkan string dan VariabelFungsi tostring()InputKonversi TipeRangkuman: Laporan StatusRangkuman: Hingga 1208Dasar Manipulasi string
string.len()string.upper & string.lowerstring.sub()string.rep()string.find()Ulasan, Format Nama Pengguna3Operator 1: Aritmetika & Penggabungan
Operator AritmetikaOperator ModuloOperator PemangkatanPenggabungan stringPrioritas OperatorRangkuman: Perhitungan Sederhana6Proyek: Menampilkan Statistik Karakter
Pesan Selamat DatangDeklarasikan Statistik Karakter9Dasar-Dasar Fungsi
Mendeklarasikan FungsiMemanggil FungsiFungsi dengan ParameterFungsi dengan Beberapa ParameterPernyataan 'return'Ulasan: Kalkulator Luas12Dasar-Dasar Perulangan
while looprepeat-until loopfor loop Numerikfor loop dengan LangkahPernyataan 'break'Ringkasan: Hitung MundurLatihan sendiri: Compiler Lua online