Lua Academy · Pelajaran

Gelung for Berangka

Lakukan lelaran pada julat nombor menggunakan sintaks for i=start,limit,step.

Pelajaran 3 daripada 412 langkah

Gelung for Berangka ialah pelajaran Lua Academy percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Lua Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Lua Academy merangkumi sejumlah 4 pelajaran.

Sintaks for Berangka

Gelung for berangka Lua berbentuk for var = start, limit, step do. step ditetapkan kepada 1 secara lalai jika ditinggalkan. Pemboleh ubah gelung bersifat setempat kepada bahagian badan gelung dan tidak boleh diubah di dalamnya. Had dan langkah dinilai sekali sebelum gelung bermula.

-- 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

Kiraan Undur dengan Langkah Negatif

Gunakan langkah negatif untuk mengira secara menurun. Gelung diteruskan selagi var >= limit (apabila langkah bernilai negatif). Jika nilai mula sudah kurang daripada had dengan langkah negatif, bahagian badan gelung tidak akan dilaksanakan.

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

Pemboleh Ubah Gelung Bersifat Setempat

Pemboleh ubah kawalan gelung (i) secara automatik bersifat setempat. Anda tidak boleh mengubah nilainya di dalam gelung — Lua mengabaikan tugasan kepada pemboleh ubah gelung. Untuk menjejak lelaran dengan cara lain, gunakan pemboleh ubah setempat yang berasingan.

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)

Melelar melalui Tatasusunan

Kegunaan paling biasa for berangka ialah melalui tatasusunan mengikut indeks. Gunakan #arr sebagai had. Berbanding ipairs, bentuk ini membolehkan anda mengawal saiz langkah dan mengulang secara terbalik, serta sedikit lebih pantas untuk tatasusunan 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

Gelung for berangka sangat sesuai untuk mengumpulkan nilai daripada tatasusunan. Coraknya sentiasa sama: mulakan pemboleh ubah hasil sebelum gelung, kemas kininya di dalam gelung, kemudian gunakan hasil selepas gelung.

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 Berangka Bersarang

Sarangkan dua gelung for berangka untuk operasi dua dimensi seperti melintasi matriks, jadual yang mengandungi jadual lain atau menjana pasangan koordinat. Gelung luar mengendalikan baris, manakala gelung dalam mengendalikan lajur — setiap lelaran 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 Perpuluhan

Langkah dan had boleh berupa nombor titik apung, walaupun hal ini boleh menyebabkan ralat ketepatan. Untuk bilangan lelaran yang tepat, gunakan integer. Jika anda mesti menggunakan nombor titik apung, ambil perhatian bahawa bilangan gelung dikira 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

Membina Jadual Hasil

Gelung for berangka ialah cara piawai untuk membina jadual baharu daripada data sedia ada. Cipta jadual kosong, kemudian gunakan gelung untuk mengisinya mengikut 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 Berangka

Anda boleh keluar lebih awal daripada for berangka dengan break. Pelaksanaan melompat ke pernyataan selepas end. Hal ini berguna untuk carian linear: lelar sehingga sasaran ditemui, kemudian 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

Pengiraan Bilangan Gelung

Bilangan lelaran bagi for i = start, limit, step ialah max(0, floor((limit - start) / step) + 1). Memahami hal ini membantu mengelakkan ralat satu kurang atau satu lebih. Apabila langkah ialah 1, bilangannya hanyalah 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)

Semakan Pantas

Apakah nilai yang diulangi oleh for i = 10, 1, -3 do?

Imbas Kembali: for Berangka

Ringkasan:

  • for i = start, limit, step do — langkah ditetapkan kepada 1 secara lalai
  • Langkah negatif untuk kiraan undur
  • Pemboleh ubah gelung secara automatik bersifat setempat dan baca sahaja
  • Had dan langkah dinilai sekali sebelum gelung bermula
  • break keluar lebih awal
  • Corak piawai: bina jadual hasil, cari dalam tatasusunan dan kumpulkan jumlah
Percuma untuk bermula

Pelajari Lua dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
40
Pelajaran
159

Soalan Lazim

Adakah pelajaran “Gelung for Berangka” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Lua Academy, termasuk “Gelung for Berangka”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Lua Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Gelung for Berangka”?

Lakukan lelaran pada julat nombor menggunakan sintaks for i=start,limit,step. Anda berlatih Lua Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Lua Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Lua Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.

Berapa lamakah pelajaran “Gelung for Berangka” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Lua Academy ini?

Ya. Setiap pelajaran Lua Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

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