Lua という名前は, ポルトガル語で [月] を意味する単語.
hello.lua
1 2 3 4 5 | -- hello.lua
-- print 関数は自動的に "\n" を入れることを忘れない
print("Hello Lua World")
print("你好 Lua")
print("こんにちは Lua")
|
hello.lua の実行し方 1 と 結果は:
[wtopia lua.hajime]$ lua hello.lua
Hello Lua World
你好 Lua
こんにちは Lua
hello.lua の実行し方 2 (インタプリター) と 結果は:
[wtopia lua.hajime]$ lua
Lua 5.1.4 Copyright (C) 1994-2008 Lua.org, PUC-Rio
> =dofile("hello.lua")
Hello Lua World
你好 Lua
こんにちは Lua
>
hello2.lua
1 2 3 4 5 | -- hello2.lua
io.write("Hello Lua World") -- "\n" を入れない
print() -- "\n" を自動的に入れる
io.write("こんにちは Lua")
print()
|
hello2.lua の実行結果は:
[wtopia lua.hajime]$ lua hello2.lua
Hello Lua World
こんにちは Lua
x3.lua
1 2 3 4 5 | -- x3.lua
v = io.read()
io.write(v*3)
print()
|
x3.lua の実行結果は:
[wtopia lua.hajime]$ lua x3.lua
3
9
[wtopia lua.hajime]$ lua x3.lua
4
12
even-odd.lua
1 2 3 4 5 6 7 8 | -- even-odd.lua
print("input number:")
v = io.read()
if v % 2 == 0 then
print "the number is even"
else
print "the number is odd"
end
|
even-odd.lua の実行結果は:
[wtopia lua.hajime]$ lua even-odd.lua
input number:
100
the number is even
[wtopia lua.hajime]$ lua even-odd.lua
input number:
55
the number is odd
注意: Lua の if 文は, 以下のように記述する:
-- 単純な書き方
if (式) then
(式が真の時)
end
-- 二分岐
if (式) then
(式が真の時)
else
(式が偽の時)
end
-- 多分岐
if (式 1) then
(式 1 が真の時)
elseif (式 2) then
(式 2 が真の時)
elseif (式 3 ) then
(式 3 が真の時)
elseif (式 4) then
(式 4 が真の時)
else
(上記の式が全て偽の時)
end
3 から 100 までの素数を求めるプログラム.
prime.lua
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | -- prime.lua
function is_prime(n)
local i
for i = 2, (n-1) do
if n % i == 0 then
return false
end
end
return true
end
-- check prime
for i = 2, 100 do
if is_prime(i) then
io.write("["..i.."]")
end
end
|
prime.lua の実行結果は:
[wtopia lua.hajime]$ lua prime.lua
[2][3][5][7][11][13][17][19][23][29][31][37][41][43][47][53][59][61][67][71][73][79][83][89][97][wtopia lua.hajime]$
for 文の書式は以下のようになっている:
for (変数) = (開始値), (終了値) do
(繰り返し文)
end
関数を定義するには以下のようになる:
function 関数名 (引数 1, 引数 2 ...)
関数の内容
end
もう一つの関数の定義がある.
add.lua
1 2 3 4 5 6 7 8 9 10 | -- 関数の定義 1
function add(a, b)
return (a + b)
end
-- 関数の定義 2
add = function(a, b) return (a+b) end
print( "10 + 20 = " .. add(10, 20) )
print( "10 + 30 = " .. add(10, 30) )
|
add.lua の実行結果は:
[wtopia lua.hajime]$ lua add.lua
10 + 20 = 30
10 + 30 = 40
偶数, 奇数を判定する.
even-odd2.lua
1 2 3 4 5 6 7 8 9 10 11 12 13 | -- even-odd2.lua
while true do
print("Input number:")
v = io.read()
if (v == nil) or (v == "") then
break
end
if v % 2 == 0 then
print("the number is even")
else
print("the number is odd")
end
end
|
even-odd2.lua の実行結果は:
[wtopia lua.hajime]$ lua even-odd2.lua
Input number:
10
the number is even
Input number:
67
the number is odd
Input number:
[wtopia lua.hajime]$
while 文は次の書式で記述する:
while (式) do
(式が真の間実行される文)
end