Lua勉強日記(3)

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

syntax.lua
users = {{ name = "john", password = "xxxxx"},{ name = "paul", password = "yyyyy"}}function certify(name, password)for i, user in ipairs(users) doif user.name == name thenif user["password"] == password thenreturn trueelsereturn falseendendendendif certify("john", "xxxxx") thenprint("johnは認証された。")elseprint("johnは認証されなかった。")endif certify("paul", "yyxxzz") thenprint("paulは認証された。")elseprint("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 を使っています。コメントデータの処理方法の詳細はこちらをご覧ください