Operator aritmatika
Operator aritmatika Lua adalah:
"+" (tambahan):
Salinan kode adalah sebagai berikut:
Cetak (1 + 2)
"-" (pengurangan):
Salinan kode adalah sebagai berikut:
Cetak (2 - 1)
"*"(perkalian):
Salinan kode adalah sebagai berikut:
Cetak (1 * 2)
"/"(divisi):
Salinan kode adalah sebagai berikut:
Cetak (1/2)
"^" (indeks):
Salinan kode adalah sebagai berikut:
Cetak (27^(-1/3))
"%" (model):
Salinan kode adalah sebagai berikut:
Cetak (5 % 3)
Operator relasional
Lua menyediakan operator relasional berikut:
Salinan kode adalah sebagai berikut:
<> <=> = == ~ =
Operasi yang dikembalikan oleh operator di atas benar atau salah. String tidak dapat dibandingkan dengan angka
Operator logis
Operator logis termasuk dan, atau, tidak
Salinan kode adalah sebagai berikut:
Cetak (1 dan 2)
Cetak (nil dan 1)
Cetak (false dan 2)
Cetak (1 atau 2)
cetak (false atau 5)
Operator logis memperlakukan salah dan nol sebagai salah, dan lainnya sebagai benar.
Variabel dan ruang lingkup lokal
Lua menciptakan variabel lokal melalui pernyataan lokal, dan ruang lingkup variabel lokal terbatas pada blok yang menyatakannya.
Salinan kode adalah sebagai berikut:
A, b = 1, 10 lokal
Jika A <B maka
Cetak (a)
a
Cetak (a)
akhir
Cetak (A, B)
Menyimpan variabel global dengan variabel lokal lokal dapat mempercepat akses ke variabel global dalam ruang lingkup saat ini. Untuk efek akselerasi, bandingkan waktu eksekusi urutan fibonacci di bawah ini untuk menghitung:
Salinan kode adalah sebagai berikut:
fungsi fibonacci (n)
Jika n <2 maka
Kembali n
akhir
return fibonacci (n - 2) + fibonacci (n - 1)
akhir
io.write (fibonacci (50), "/n")
Gunakan variabel lokal lokal
Salinan kode adalah sebagai berikut:
Fungsi lokal fibonacci (n)
Jika n <2 maka
Kembali n
akhir
return fibonacci (n - 2) + fibonacci (n - 1)
akhir
io.write (fibonacci (50), "/n")
Struktur kontrol
Jika maka elseife berakhir
Salinan kode adalah sebagai berikut:
Jika num == 1 maka
Cetak (1)
elseif num == 2 kemudian
Cetak (2)
kalau tidak
Cetak ("Lainnya")
akhir
Lua tidak mendukung pernyataan sakelar
Ketika
Pertama menilai kondisi sementara. Jika kondisinya benar, maka jalankan badan loop, jika tidak, itu akan berakhir
Salinan kode adalah sebagai berikut:
Lokal I = 1
saat [i] lakukan
cetak (a [i])
i = i + 1
akhir
berulang-ulang
Pertama -tama jalankan badan sirkulasi sekali, lalu menilai kondisinya. Jika kondisinya benar, keluar dari badan sirkulasi, jika tidak terus jalankan badan sirkulasi. Mirip dengan pernyataan do-while dalam bahasa lain, badan loop akan dieksekusi setidaknya sekali.
Salinan kode adalah sebagai berikut:
A LOKAL A = 1
mengulang
a = a + 1
b = a
Cetak (b)
sampai b <10
untuk loop
Ada dua bentuk untuk pernyataan loop: numerik untuk (numerik untuk), generik untuk (generik untuk)
Nomor untuk sintaks:
Salinan kode adalah sebagai berikut:
Untuk memulai, akhiri, langkah lakukan
melakukan sesuatu
akhir
Mulai adalah nilai awal, akhir adalah nilai akhir, dan langkah adalah ukuran langkah (opsional, default adalah 1)
Salinan kode adalah sebagai berikut:
untuk a = 10, 0, -2 lakukan
Cetak (a)
akhir
Generik untuk loop melintasi semua nilai melalui fungsi iterator:
Salinan kode adalah sebagai berikut:
tab = {key1 = "val1", key2 = "val2", "val3"}
untuk k, v berpasangan (tab) lakukan
Jika k == "key2" lalu
merusak
akhir
Cetak (K .. " -" .. V)
akhir
Pernyataan istirahat dan pengembalian digunakan untuk keluar dari blok yang saat ini dieksekusi.