忍者ブログ

神戸電子専門学校ゲームソフト学科の生徒が運営するGESのブログです。

   

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

スクリプト言語「Lua」 パート2 ~基本文法編~

どーも アッキーです
月9ドラマの「ラッキーセブン」終わっちゃいましたね~
アクションシーンがカッケェ!!って思ったのは私だけじゃないはず
松潤よりは瑛太のほうがカッコ良かったです!!
女か俺は(-_-;)・・・

さて今回はやっとこさ開発環境が整ったので
Luaの基本文法からやっていきます
目標は「深くまでは知らないけど、とりあえず使える」ぐらいまでしますか

拍手[2回]


前回は確認の意味でも文字列を表示しました
しかし変数使えなきゃプログラムは組めないでしょう
なので変数使ったプログラムを書いてみましょう
気づいたかもしれませんがLuaにはメイン関数はありません
つまりソースに書いたものを上から実行していきます

Test.lua

Value = 1    --この時点では単なる数字 「--」で1行コメントになります
print( Value )

Value = 5.3    --小数点になりました
print( Value )

Value = "さぁ楽しい楽しいプログラムだァ"    --これで文字列に

--「..」で連結ができます 変数だろうが文字列だろうが繋げられます
print( Value.."\n張り切っていこー" )

--びっくりすると思いますが関数だって代入できます
Value = print
Value( "Value変数からの呼び出し" )


結果

1
5.3
さぁ楽しい楽しいプログラムだァ
張り切っていこー
Value変数からの呼び出し

言うまでもありませんが「Value」が変数です
しかしintやcharなどの型宣言をしていません
そうですLuaは「変数宣言が入りません」
故に意図しない変数宣言をしている可能性がありますので注意して下さい

そしてLuaの変数は何にでも化けます。関数だって例外ではありません

さぁ次は「条件分岐」です。それと共に「関数の作り方」もやります
とりあえず見て行きましょう

Test.lua

--大きい方を表示する関数
function PrintMax( a, b )
    
    if a > b then
    
        print( "大きい方は「"..a.."」です" )
    elseif a < b then
    
        print( "大きい方は「"..b.."」です" )
    else
    
        print( "2つの値は同じです" )    
    end
end

--戻り値を返すだけの関数
function VariableFunc()
    return 1, 2, 3;        
end

--数字と数字(数値として大き方を表示)
PrintMax( 1, 2 )

--文字と文字(文字コードの大きい方を表示)
--残念ながら「数字と文字」は比べられません

PrintMax( "こっち?", "それともこっち?" )

--たくさんの戻り値を受け取って表示する
One, Tow, Three = VariableFunc()
print( One..Tow..Three )


結果

大きい方は「2」です
大きい方は「それともこっち?」です
123

色々突っ込みどころがあると思いますので解説していきます
関数「PrintMax」は単に大きい値を画面に出力する関数です

条件分岐文はVBに似ているのではないでしょうか?
文法は見ての通りです。解説もいらないか^^;

関数も作り方や、仮引数の使い方には問題ないと思います
おそらく問題は「戻り値」ではないでしょうか?
関数「VariableFunc」は単に1,2,3の数字を返すだけの関数です
そうですLuaの関数戻り値はいくつでも返すことができます
受け取り方は上記の通り、戻り値分だけ変数を用意して受け取ります
受取り用変数が少なければ格納できなかった戻り値は破棄され
逆に多ければ、値が入らなかった変数に「nil」という値が入ります


さて次は「繰り返し文」です
3種類ありますが私が紹介するのは2種類だけにします

Test.lua

--単に5回繰り返す
i = 1
while i < 5 do
    print( i )
    i = i + 1
end

--上と全く同じ結果
--真ん中の数字(今回は4)には条件式をかけない

for i = 1, 4, 1 do
    print( i )
end


結果

1
2
3
4
1
2
3
4

はい、何の変哲もないプログラムですが
for文の繰り返し条件式(このプログラムでは4の場所)は数字しかかけません
あとLuaのプログラムは配列(テーブル)はすべて1から始まります
最も混乱を招きやすいところなので注意して下さい


な、長ァ~~~・・・毎回すいません。
でも繰り返し文といえば「配列」がよく使われますが、それは次回に回します
ですので次回は「配列(テーブル)の解説」をする予定です
そのあとでC/C++との連携をとってみましょう
本当にお疲れ様ですm(_ _)m
PR

COMMENT

NAME
TITLE
MAIL(非公開)
URL
EMOJI
Vodafone絵文字 i-mode絵文字 Ezweb絵文字
COMMENT
PASS(コメント編集に必須です)
SECRET
管理人のみ閲覧できます

無題

  • by Yana#P
  • 2012/03/21(Wed)02:57
  • Edit
PHPっぽいなぁ・・・

無題

  • by アッキー
  • 2012/03/21(Wed)11:33
  • Edit
すいません、私はPHPわかりませんm(_ _)m
この記事や他でわからないことがあれば
コメントやメールしてきてくださいね(^-^)

ブログ内検索

最新コメント

[01/29 人面犬]
[10/01 8ch]
[09/12 uncle]
[09/10 某卒業生]
[06/07 uncle]

カレンダー

02 2024/03 04
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

テスト

Copyright ©  -- GESブログ --  All Rights Reserved
Design by CriCri / Photo by Geralt / powered by NINJA TOOLS / 忍者ブログ / [PR]