Lua勉強日記(3)

制御構造について知るために、簡易ユーザ認証風な関数を書いてみました。

syntax.lua
users = {
{ name = "john", password = "xxxxx"},
{ name = "paul", password = "yyyyy"}
}
function certify(name, password)
for i, user in ipairs(users) do
if user.name == name then
if user["password"] == password then
return true
else
return false
end
end
end
end
if certify("john", "xxxxx") then
print("johnは認証された。")
else
print("johnは認証されなかった。")
end
if certify("paul", "yyxxzz") then
print("paulは認証された。")
else
print("paulは認証されなかった。")
end
実行結果
C:\lua_example>lua5.1.exe syntax.lua
johnは認証された。
paulは認証されなかった。

usersというテーブルに、ユーザデータを定義しました。

certifyという関数で、引数の名前とパスワードで認証判定します。認証が成功した場合は true を返し、認証が失敗した場合は false を返します。

for は、ipairs 関数を使って、テーブル内部のデータを舐めてます。

Luaには、switch文は無いようです。(perl にも無かったし、特に困らない)

for以外の繰り返しは以下があります。

  • while 条件 do … end
  • repeat … until 条件

ループを抜けるためのbreak文がありますが、continue文はありません。だから、ループ内でcontinueを使いたい場合には、if文で囲む必要があります。

これは、インデントが深くなってしまうので嬉しくない。あまり広い(行数の多い)ループは書くな!という方針でFAかな。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です


reCaptcha の認証期間が終了しました。ページを再読み込みしてください。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください