[[さばとたんと遊ぼうIndex]]

4.さばとともしかしたら

#clear
#ref(さばとたんと遊ぼうIndex/so_icon.png,around,left)
神さんよ、Lua教えるのはええけど、最後飛行機どうやって飛ばす気なんや?滑走する場所なんてどーみてもこの神社にはないで?
#clear
#ref(さばとたんと遊ぼうIndex/sabato_icon_5.png,around,left)
むぅ・・・ま、まぁなんとかなるじゃろ
#clear
#ref(さばとたんと遊ぼうIndex/so_icon.png,around,left)
それに離陸は何とかなるとしても着陸とか絶対むりやろ
#clear
#ref(さばとたんと遊ぼうIndex/sabato_icon_6.png,around,left)
参道つかえばなんとかならんかの?鳥居をこう、どこぞのヤシの木みたいに倒すとか。
#clear
#ref(さばとたんと遊ぼうIndex/so_icon.png,around,left)
神さんみずからやる場合はバチあたらへんのかなぁ・・
#clear
#ref(さばとたんと遊ぼうIndex/sabato_icon_1.png,around,left)
そんな心配より講座の続きじゃ。今日はどんなことやるのじゃ?
#clear
#ref(さばとたんと遊ぼうIndex/so_icon.png,around,left)
へい、今日も昨日みたいな感じでボタンを押したら何か画面が変わるってのをやりますで
#clear
#ref(さばとたんと遊ぼうIndex/sabato_icon_8.png,around,left)
ふむふむ、しかしどこまでも画面に文字が出るだけじゃの。いつになったらエンジンやら何やら動かせるのじゃ?
#clear
#ref(さばとたんと遊ぼうIndex/so_icon.png,around,left)
それなんやけど、今日の分まで終わったら少しだけモデル動かせるようなるで。具体的には『Basic.txt』をLuaに出来るくらいや。
#clear
#ref(さばとたんと遊ぼうIndex/sabato_icon_7.png,around,left)
本当か?『Basic.txt』と言えば妾が自家用車に使っておるのだがいじってみられるかの?
#clear
#ref(さばとたんと遊ぼうIndex/so_icon.png,around,left)
ほな明日はそれやりましょ。そのためにも今日の講座は気合い入れていくでー
#clear
#ref(さばとたんと遊ぼうIndex/so_icon.png,around,left)
さて、今日やるのは『if文』や。なんかの『条件』を決めて、その『条件』に当たるときだけ○○するって奴やな。たとえばこんなのや
#clear
#codeprettify{{
 	VAL{}KEY{}BODY{CORE(){} }
 	Lua{
 	function OnFrame()
 		if _KEY(4) > 0 then
 			out(0, "さばとたん!ああさばとたん!さばとたん!");
 		end
 	end
 	}
}}
#clear
#ref(さばとたんと遊ぼうIndex/sabato_icon_10.png,around,left)
カタカタカタカタ)むぅ、キーボードって二刀流で速くならんかの。
#clear
#ref(さばとたんと遊ぼうIndex/so_icon.png,around,left)
神さんはそないなこと考えるヒマあったらブラインドタッチ練習した方がええと思うで
#clear
#ref(さばとたんと遊ぼうIndex/sabato_icon_1.png,around,left)
うるさいのぉ。かくいうお主はヒレしかないように見えるがそこらへんはどうなんじゃ
#clear
#ref(さばとたんと遊ぼうIndex/so_icon.png,around,left)
某はUSB(UniversalSaba Bus)ちう仕組みで直接文字入力しとりますから心配はいりまへんで
#clear
#ref(さばとたんと遊ぼうIndex/sabato_icon_4.png,around,left)
(今度抱いてるときにコネクタ探そうかの)。さて、できたぞ。これを読み込むと・・・なにも起きんのじゃが?
#clear
#ref(さばとたんと遊ぼうIndex/so_icon.png,around,left)
その状態でZキー押してみ?
#clear
#ref(さばとたんと遊ぼうIndex/sabato_icon_6.png,around,left)
なるほど、Zを押したときだけこれが表示されるのじゃな。ということは『Zを押した』というのがさっき主の言っておった『条件』に当たるのかの?
#clear
#ref(さばとたんと遊ぼうIndex/so_icon.png,around,left)
そのとおりや。んで、その条件を書いとるのが『if _KEY(4) > 0 then』やな。とりあえず、_KEY(4)ゆーのは、Zキー顔されてる間は1で、離れてる間は0やとおもえばええ。
#clear
#ref(さばとたんと遊ぼうIndex/sabato_icon_1.png,around,left)
ということは妾がZキーを押しとる間は_KEY(4)>0が成り立ち、離しとると成り立たんのじゃな。
#clear
#ref(さばとたんと遊ぼうIndex/so_icon.png,around,left)
そや。その上で『if 成り立つか/成り立たないかの条件 then』〜『(対応する)end』までの中身、この場合の『out(0, "さばとたん!ああさばとたん!さばとたん!");』は、成り立つ場合だけ実行されるんやわ。
#clear
#ref(さばとたんと遊ぼうIndex/sabato_icon_11.png,around,left)
何度もそんな文章連呼しておると主の頭を心配したくなるがまぁよい。ということはこうするとZキーを押していないときだけ表示されるんじゃな
#clear
#codeprettify{{
 if _KEY(4) = 0 then
}}
#clear
#ref(さばとたんと遊ぼうIndex/sabato_icon_1.png,around,left)
む、また英語でエラーじゃ。む、『then expected near `='』とな?つまり=の近くにthenがあるべきだということかの
#clear
#ref(さばとたんと遊ぼうIndex/so_icon.png,around,left)
あー神さんは某の言うたことちゃんと覚えとりますか?等しいって言いたいんやったら『=』やのうて『==』やと言うた覚えありますけど。
#clear
#ref(さばとたんと遊ぼうIndex/sabato_icon_5.png,around,left)
わ、妾が忘れておるわけが無かろう。ちょっとキーボードの調子が悪かっただけじゃ。直せばよいのじゃろう?
#clear
#codeprettify{{
 if _KEY(4) == 0 then
}}
#clear
#ref(さばとたんと遊ぼうIndex/sabato_icon_6.png,around,left)
うむ、これでちゃんとキーを押していない時だけ表示されておる。
#clear
#ref(さばとたんと遊ぼうIndex/so_icon.png,around,left)
せっかくやから今日はまだまだいくで。次は『if-else文』や
#clear
#codeprettify{{
 	VAL{}KEY{}BODY{CORE(){} }
 	Lua{
 	function OnFrame()
 		if _KEY(4) > 0 then
 			out(0, "さばとたん!ああさばとたん!さばとたん!");
 		else
 			out(0, "さばとたんがさばをさばく。");
 		end
 	end
 	}
}}
#clear
#ref(さばとたんと遊ぼうIndex/sabato_icon_6.png,around,left)
実はこれ二行付け足すだけでいいのではないかの?ともかく出来たぞ。今度はZキーを押しているときと離しているときで表示の内容が変わるのじゃな
#clear
#ref(さばとたんと遊ぼうIndex/so_icon.png,around,left)
そや。こんな感じで○○な時〜と○○でない時〜で処理内容を分岐させるのがif-elseやな。
#clear
#ref(さばとたんと遊ぼうIndex/sabato_icon_1.png,around,left)
だがそれならばこう書いても同じことではないのかの?
#clear
#codeprettify{{
 	VAL{}KEY{}BODY{CORE(){} }
 	Lua{
 	function OnFrame()
 		if _KEY(4) > 0 then
 			out(0, "さばとたん!ああさばとたん!さばとたん!");
 		end
 		if _KEY(4) == 0 then
 			out(0, "さばとたんがさばをさばく。");
 		end
 	end
 	}
}}
#clear
#ref(さばとたんと遊ぼうIndex/so_icon.png,around,left)
結果だけ見れば確かに神さんの言うとおりやけど、それやと二回条件書くのが面倒やろ?その点else使えば一回書けばOKやから省エネや
#clear
#ref(さばとたんと遊ぼうIndex/sabato_icon_8.png,around,left)
そういえばelseの後にはthenはいらんのじゃな。英語的都合かの?
#clear
#ref(さばとたんと遊ぼうIndex/so_icon.png,around,left)
そやな。まぁ英語的言う以前に書かんでも分かるからとちゃうかなぁ。でも次やるやつではまたthen出てくるで。
#clear
#ref(さばとたんと遊ぼうIndex/sabato_icon_2.png,around,left)
まだ続くのかの。今日は偉いおおいの
#clear
#ref(さばとたんと遊ぼうIndex/so_icon.png,around,left)
それだけ大事なところやっとるいうことや。ここきちんと覚えたら一応モデル動くで?、次やるのは『if-elseif-else文』や。
#clear
#codeprettify{{
 	VAL{}KEY{}BODY{CORE(){} }
 	Lua{
 	function OnFrame()
 		if _KEY(4) > 0 then
 			out(0, "さばとたん!ああさばとたん!さばとたん!");
 		elseif _KEY(5) > 0 then
 			out(0, "さばとたんは永遠の○○歳!");
 		else
 			out(0, "さばとたんがさばをさばく。");
 		end
 	end
 	}
}}
#clear
#ref(さばとたんと遊ぼうIndex/sabato_icon_5.png,around,left)
だんだん長くなっていくの。一応、入力はできたがまたエラーじゃ。
#clear
#ref(さばとたんと遊ぼうIndex/so_icon.png,around,left)
あー神さんや、『else if』やのうて『elseif』や。間あけたらあかん。
#clear
#ref(さばとたんと遊ぼうIndex/sabato_icon_1.png,around,left)
ややこしいの。で、直したらエラーは消えたが今までと動作が変わらんぞ。
#clear
#ref(さばとたんと遊ぼうIndex/so_icon.png,around,left)
いったんZキーから指離して代わりにX押してみてくらはいな。_KEY(5)いうのは_KEY(4)みたいなもんで、Zの代わりにXが押されてると1になるんや
#clear
#ref(さばとたんと遊ぼうIndex/sabato_icon_3.png,around,left)
なるほど、ところで、妾は永遠の何歳なんじゃ?
#clear
#ref(さばとたんと遊ぼうIndex/so_icon.png,around,left)
・・・・・・・・・10(00)歳?
#clear
#ref(さばとたんと遊ぼうIndex/sabato_icon_6.png,around,left)
そうならそうと恥ずかしがらずに書いておけば良いのに。して、これは『elseif』というくらいじゃからelse+ifなのじゃろう?
#clear
#ref(さばとたんと遊ぼうIndex/so_icon.png,around,left)
else+ifが何を指しとるのかわかりまへんが、大体そんなところや。上の条件を満たさんかったときに、elseifのところの条件を満たすとそこの内容が実行されるって寸法やな。で、条件をどれ一つ満たさんかった時だけ一番下のelseの中身が実行されるということや
#clear
#ref(さばとたんと遊ぼうIndex/sabato_icon_4.png,around,left)
なるほど、これで同時に3つの文が書けるのじゃな。省エネ省エネということか。
#clear
#ref(さばとたんと遊ぼうIndex/so_icon.png,around,left)
3つとは限りまへんで?elseifはなんぼでも書けるから、たとえばこんな感じや
#clear
#codeprettify{{
 	VAL{}KEY{}BODY{CORE(){} }
 	Lua{
 	function OnFrame()
 		if _KEY(4) > 0 then
 			out(0, "さばとたん!ああさばとたん!さばとたん!");
 		elseif _KEY(5) > 0 then
 			out(0, "さばとたんは永遠の○○歳!");
 		elseif _KEY(6) > 0 then
 			out(0, "そろそろ書ける言葉がありません!");
 		else
 			out(0, "さばとたんがさばをさばく。");
 		end
 	end
 	}
}}
#clear
#ref(さばとたんと遊ぼうIndex/sabato_icon_4.png,around,left)	
この_KEY(6)というのは今までの様子からするとCキーを押しているときだけ1になるのじゃろう?
#clear
#ref(さばとたんと遊ぼうIndex/so_icon.png,around,left)
そのとおりや。んで、これ上から見ていきますから、たとえばXキーがおされとったら『out(0, "さばとたんは永遠の○○歳!");』だけ実行されてしもうて、その次の『out(0, "そろそろ書ける言葉がありません!");』は実行されヘん。
#clear
#ref(さばとたんと遊ぼうIndex/sabato_icon_10.png,around,left)
今日はずいぶんと内容が多かったの。じゃがこれで明日はモデルが動くのじゃ!
#clear
#ref(さばとたんと遊ぼうIndex/so_icon.png,around,left)
某もしっかり準備しとくわ。とりあえず今回の内容をまとめるとこんな感じやな。
#clear
#codeprettify{{
 	if 条件 then←必須
 		何か内容
 	(elseif 条件 then)←好きなだけ繰り返す(0回以上)
 		何か内容
 	(else)←あってもなくても
 		何か内容
 	end←必須
}}

[[前:さばとと変数>さばとたんとあそぼう_3]]:[[次:さばととモデル>さばとたんとあそぼう_5]]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS