あなたがここを読んでいるということは、サンプルプログラム1をやりとげたということでしょう。
読み流しただけという人も、まあ、それはそれでいいです。
ずいぶんおぼえる事がたくさんあって、大変だったかもしれません。
なにごとも最初が一番おぼえることがあって大変なものです。
ここからはだいぶラクになると言えなくもないです。
そうは言ってもまだいくつか大事なことが残っているので、つまみ食いしながらおぼえていきましょう。
サンプルプログラム1よりはだいぶ少ないはずですよ。
- PRINT”AAA”
- PRINT”BBB”
こんなプログラムなら、もうセツメイしなくてもいいよね。
オレたちをバカにしてんのか? ラクショーすぎてワラっちまうぜ!
AAAと表示して、次の行でBBBと表示するだけのプログラムだね。
- AAA
- BBB
- OK
それでは、これをもとに「ラベル」についておぼえようか。
- @A
- PRINT”AAA”
- @B
- PRINT”BBB”
この「@」で始まる行が「ラベル」だよ。
サッパリなんだかワカらねーが、こういう時はムヤミにRUNするぜ!
- AAA
- BBB
- OK
ん? さっきと変わんねェぞ! ……ハハーン、ラベルって言い方といい、こいつは……
コメントに使う「’」と同じ、プログラムにイミのない記号なのかな?
おしい! というより、今はまだコメントと同じイミしかないと言うべきかな。
その何でもワカったような言い方、ハナにつくぜ! 違いを見せてみやがれ!
1行目に、こう足してみるとどうかな?
- GOTO @B
- @A
- PRINT”AAA”
- @B
- PRINT”BBB”
「GOTO」……?
GOTO……ゴ・ト……テメエ、全国のゴトーさんにナニかモンクがあんのか?
そういうイミじゃないんだけど。とりあえずRUNしてみようか。
- BBB
- OK
あれ? 「AAA」が表示されなくなったよ?
なんてこった……ゴトーもバカにできねえな……
ええと、これはGO TO (ゴー トゥー) と読むんだよ。「~に行け」という意味だね。
1行目のGOTO @Bは、そのまま読めば「『ラベル@B』に行け」ってこと……?
そうか! それならツジツマが合うぜ! 1行目のGOTO命令で、イキナリ「@B」と書いてある4行目までジャンプしたわけだ。
ジャンプしたから3行目のPRINT”AAA”は飛ばされる……つまり、「AAA」が表示されることもないってワケだ!
ここまではカンペキに分かったようだね。
それじゃあ応用問題を出してみようか。「BBB」「AAA」の順に表示したい時は、どうすればいいかな?
考えるまでもねェぜ! 「BBB」と表示したアトで、@Aに飛ばせばイイんだろ?
- GOTO @B
- @A
- PRINT”AAA”
- @B
- PRINT”BBB”
- GOTO @A
最後の行にGOTO @Aを書きたせばバッチリだゼ!
……あれ? これだと……
これがどうしたってんだ? RUNするぜ!
ウ、ウォオ……!?
やっぱり! 2行目まで飛んでから、また6行目で2行目に飛ぶから、いつまでたっても止まらないよ!
そう、GOTOをくり返すプログラムを組んじゃうと、無限にくり返し続けるね。こういうのを「無限ループ」というんだ。
やっちまった……こりゃリセットか……なんともノーフューチャーだぜ。
おっと待った。こういう時はあせらず3DSのSTARTボタンを押そう。
あれ、けっこうカンタンに止まるんだね。
おぼえておこうね。プログラムを途中で止める時はSTARTボタン。
ワシじゃワシじゃ、プチコンではブイブイいわせとるハカセじゃ。
インテリ君、STARTボタンとはイキナリひとつ飛ばしで教えるではないか。そこらも合わせて、3DSのボタンのセツメイじゃぞい。
さて、無限ループをしないように、PRINT”AAA”の後に1行ふやしてみようか。
- GOTO @B
- @A
- PRINT”AAA”
- END
- @B
- PRINT”BBB”
- GOTO @A
あっ、前におぼえたプログラムを終わらせるEND命令だね。こういうトキにEND命令にイミが出てくるんだね。
- BBB
- AAA
- OK
フムム……しかしコレ、こうして見るとGOTO使わなくてもフツーにこう書けばすむんじゃねェか?
- PRINT”BBB”
- PRINT”AAA”
その通り。あっちに行ったりこっちに行ったりするプログラムは、見る方もこんがらがるから「スパゲッティプログラム」と呼ばれて、良くないものとされているね。
じゃあ何のためにラベルとGOTO命令があるのか? それは次のサンプルで確かめていこう!
ケッキョクまたそのパターンかよ!
表示モード : [ スマホ・3DS対応表示 | クラシック表示 ]
PukiWiki 1.4.7 Copyright © 2001-2006 PukiWiki Developers Team. License is GPL. Based on "PukiWiki" 1.3 by yu-ji
ページの処理時間 : 0.198 秒 | このページの最終更新 : 2022/09/20 (火) 12:49:29 (565d) | ログイン
Copyright(C) 2011-2014 プチコンまとめWiki ◆1sxkymI8ji30