0Pricing
Lua Academy · Pelajaran

Perulangan for Numerik

Lakukan iterasi pada rentang numerik dengan sintaks for i=start,limit,step.

Perulangan for Numerik adalah pelajaran Lua Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Lua Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Lua Academy mencakup 4 pelajaran total.

Sintaks for Numerik

Perulangan for numerik di Lua berbentuk for var = start, limit, step do. Nilai step secara bawaan adalah 1 jika tidak dicantumkan. Variabel perulangan bersifat lokal di dalam isi perulangan dan tidak dapat diubah di dalamnya. Nilai batas dan langkah dievaluasi sekali sebelum perulangan dimulai.

-- Count 1 to 5
for i = 1, 5 do
  io.write(i .. " ")
end
print()   -- 1 2 3 4 5

-- Count with step 2
for i = 1, 10, 2 do
  io.write(i .. " ")
end
print()   -- 1 3 5 7 9

Hitung Mundur dengan Langkah Negatif

Gunakan langkah negatif untuk menghitung mundur. Perulangan berlanjut selama var >= limit (saat langkahnya negatif). Jika nilai awal sudah lebih kecil daripada batas dengan langkah negatif, isi perulangan tidak pernah dijalankan.

for i = 10, 1, -1 do
  io.write(i .. " ")
end
print()
-- 10 9 8 7 6 5 4 3 2 1

-- Step -2
for i = 10, 0, -2 do
  io.write(i .. " ")
end
print()
-- 10 8 6 4 2 0

Variabel Perulangan Bersifat Lokal

Variabel pengendali perulangan (i) secara otomatis bersifat lokal. Anda tidak dapat mengubah nilainya di dalam perulangan—Lua mengabaikan pemberian nilai ke variabel perulangan. Untuk melacak iterasi dengan cara lain, gunakan variabel lokal terpisah.

for i = 1, 5 do
  -- i is read-only inside the loop
  -- i = i + 10  -- this creates a new global i, not the loop var
  print(i)  -- always 1, 2, 3, 4, 5 as expected
end
-- i is nil here (it was local to the loop)
print(i)  -- nil (or whatever global i was)

Melakukan Iterasi pada Larik

Penggunaan paling umum for numerik adalah melakukan iterasi pada larik berdasarkan indeks. Gunakan #arr sebagai batas. Berbeda dengan ipairs, bentuk ini memungkinkan Anda mengatur ukuran langkah dan melakukan iterasi secara terbalik, serta sedikit lebih cepat untuk larik padat.

local fruits = {"apple", "banana", "cherry", "date"}

for i = 1, #fruits do
  print(i, fruits[i])
end
-- 1  apple
-- 2  banana
-- 3  cherry
-- 4  date

Menjumlahkan dengan for

Perulangan for numerik ideal untuk mengakumulasi nilai dari larik. Polanya selalu sama: inisialisasikan variabel hasil sebelum perulangan, perbarui di dalam perulangan, lalu gunakan setelahnya.

local values = {10, 20, 30, 40, 50}
local total = 0

for i = 1, #values do
  total = total + values[i]
end

print("Total:", total)    -- 150
print("Count:", #values)  -- 5
print("Mean:", total / #values)  -- 30

for Numerik Bersarang

Sarangkan dua perulangan for numerik untuk operasi dua dimensi seperti melintasi matriks, tabel berisi tabel, atau menghasilkan pasangan koordinat. Perulangan luar menangani baris, sedangkan perulangan dalam menangani kolom—setiap iterasi mengakses satu sel.

local rows, cols = 3, 4

for r = 1, rows do
  for c = 1, cols do
    io.write(string.format("%2d ", r * c))
  end
  print()
end
--  1  2  3  4
--  2  4  6  8
--  3  6  9 12

Langkah Pecahan

Langkah dan batas dapat berupa bilangan titik-mengambang, meskipun hal ini dapat menimbulkan kesalahan presisi. Untuk jumlah iterasi yang tepat, gunakan bilangan bulat. Jika harus menggunakan bilangan pecahan, perhatikan bahwa jumlah perulangan dihitung sebagai floor((limit - start) / step) + 1.

-- Float step
for x = 0.0, 1.0, 0.25 do
  io.write(x .. " ")
end
print()
-- 0.0  0.25  0.5  0.75  1.0

-- Prefer integer math when possible
for i = 0, 4 do
  local x = i * 0.25
  io.write(x .. " ")
end

Membangun Tabel Hasil

Perulangan for numerik adalah cara standar untuk membangun tabel baru dari data yang sudah ada. Buat tabel kosong, lalu gunakan perulangan untuk mengisinya berdasarkan indeks.

local source = {1, 2, 3, 4, 5}
local squares = {}

for i = 1, #source do
  squares[i] = source[i] ^ 2
end

for i = 1, #squares do
  print(squares[i])   -- 1, 4, 9, 16, 25
end

break dalam for Numerik

Anda dapat keluar lebih awal dari for numerik dengan break. Eksekusi melompat ke pernyataan setelah end. Hal ini berguna untuk pencarian linear: lakukan iterasi hingga target ditemukan, lalu gunakan break.

local data = {5, 3, 8, 1, 9, 2, 7}
local target = 9
local foundAt = nil

for i = 1, #data do
  if data[i] == target then
    foundAt = i
    break
  end
end

if foundAt then
  print("Found at index " .. foundAt)  -- 5
else
  print("Not found")
end

Penghitungan Jumlah Perulangan

Jumlah iterasi for i = start, limit, step adalah max(0, floor((limit - start) / step) + 1). Memahami hal ini mencegah kesalahan kurang atau lebih satu. Jika langkahnya 1, jumlahnya cukup limit - start + 1.

-- How many iterations?
local count = 0
for i = 1, 10, 3 do
  count = count + 1
end
print(count)   -- 4  (i = 1, 4, 7, 10)

count = 0
for i = 5, 1 do   -- step=1 but start > limit
  count = count + 1
end
print(count)   -- 0 (no iterations)

Pemeriksaan Singkat

Nilai apa saja yang diiterasi oleh for i = 10, 1, -3 do?

Ringkasan: for Numerik

Ringkasan:

  • for i = start, limit, step do — langkah secara bawaan bernilai 1
  • Langkah negatif digunakan untuk menghitung mundur
  • Variabel perulangan secara otomatis bersifat lokal dan hanya dapat dibaca
  • Batas dan langkah dievaluasi sekali sebelum perulangan dimulai
  • break keluar lebih awal
  • Pola standar: membangun tabel hasil, mencari dalam larik, dan mengakumulasi jumlah

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Perulangan for Numerik” gratis?

Ya — teks lengkap “Perulangan for Numerik” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Lua Academy, upgrade ke CoddyKit PRO. Kursus Lua Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Perulangan for Numerik”?

Lakukan iterasi pada rentang numerik dengan sintaks for i=start,limit,step. Kamu berlatih Lua Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Lua Academy?

Tidak diperlukan pengalaman sebelumnya. Lua Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Perulangan for Numerik” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Lua Academy ini?

Ya. Setiap pelajaran Lua Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Pernyataan if, elseif, dan else
  2. Perulangan while dan repeat-until
  3. Perulangan for Numerik
  4. for Generik dan break
← Kembali ke Lua Academy