どーも アッキーです
月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
無題
無題
この記事や他でわからないことがあれば
コメントやメールしてきてくださいね(^-^)