プチコン3号&BIGまとめWiki

プチコン3号&BIG 非公式初心者講座 : 第4章 ラベルとGOTOのはなし

パンくずリスト

プログラマーからひとこと

あなたがここを読んでいるということは、サンプルプログラム1をやりとげたということでしょう。
読み流しただけという人も、まあ、それはそれでいいです。

ずいぶんおぼえる事がたくさんあって、大変だったかもしれません。
なにごとも最初が一番おぼえることがあって大変なものです。
ここからはだいぶラクになると言えなくもないです。

そうは言ってもまだいくつか大事なことが残っているので、つまみ食いしながらおぼえていきましょう。
サンプルプログラム1よりはだいぶ少ないはずですよ。

ラベルとGOTO命令

  1. PRINT”AAA”
  2. PRINT”BBB”
インテリくん

こんなプログラムなら、もうセツメイしなくてもいいよね。

ワンパクくん

オレたちをバカにしてんのか? ラクショーすぎてワラっちまうぜ!

神崎

AAAと表示して、次の行でBBBと表示するだけのプログラムだね。

  1. AAA
  2. BBB
  3. OK
インテリくん

それでは、これをもとに「ラベル」についておぼえようか。

  1. @A
  2. PRINT”AAA”
  3. @B
  4. PRINT”BBB”
インテリくん

この「」で始まる行が「ラベル」だよ。

ワンパクくん

サッパリなんだかワカらねーが、こういう時はムヤミにRUNするぜ!

  1. AAA
  2. BBB
  3. OK
ワンパクくん

ん? さっきと変わんねェぞ! ……ハハーン、ラベルって言い方といい、こいつは……

神崎

コメントに使う「」と同じ、プログラムにイミのない記号なのかな?

インテリくん

おしい! というより、今はまだコメントと同じイミしかないと言うべきかな。

ワンパクくん

その何でもワカったような言い方、ハナにつくぜ! 違いを見せてみやがれ!

インテリくん

1行目に、こう足してみるとどうかな?

  1. GOTO @B
  2. @A
  3. PRINT”AAA”
  4. @B
  5. PRINT”BBB”
神崎

「GOTO」……?

ワンパクくん

GOTO……ゴ・ト……テメエ、全国のゴトーさんにナニかモンクがあんのか?

インテリくん

そういうイミじゃないんだけど。とりあえずRUNしてみようか。

  1. BBB
  2. OK
神崎

あれ? 「AAA」が表示されなくなったよ?

ワンパクくん

なんてこった……ゴトーもバカにできねえな……

インテリくん

ええと、これはGO TO (ゴー トゥー) と読むんだよ。「〜に行け」という意味だね。

神崎

1行目のGOTO @Bは、そのまま読めば「『ラベル@B』に行け」ってこと……?

ワンパクくん

そうか! それならツジツマが合うぜ! 1行目のGOTO命令で、イキナリ「@B」と書いてある4行目までジャンプしたわけだ。
ジャンプしたから3行目のPRINT”AAA”は飛ばされる……つまり、「AAA」が表示されることもないってワケだ!

インテリくん

ここまではカンペキに分かったようだね。
それじゃあ応用問題を出してみようか。「BBB」「AAA」の順に表示したい時は、どうすればいいかな?

ワンパクくん

考えるまでもねェぜ! 「BBB」と表示したアトで、@Aに飛ばせばイイんだろ?

  1. GOTO @B
  2. @A
  3. PRINT”AAA”
  4. @B
  5. PRINT”BBB”
  6. GOTO @A

最後の行にGOTO @Aを書きたせばバッチリだゼ!

神崎

……あれ? これだと……

ワンパクくん

これがどうしたってんだ? RUNするぜ!

exec_loop.jpg
ワンパクくん

ウ、ウォオ……!?

神崎

やっぱり! 2行目まで飛んでから、また6行目で2行目に飛ぶから、いつまでたっても止まらないよ!

インテリくん

そう、GOTOをくり返すプログラムを組んじゃうと、無限にくり返し続けるね。こういうのを「無限ループ」というんだ。

ワンパクくん

やっちまった……こりゃリセットか……なんともノーフューチャーだぜ。

インテリくん

おっと待った。こういう時はあせらず3DSのSTARTボタンを押そう。

exec_break.jpg
神崎

あれ、けっこうカンタンに止まるんだね。

インテリくん

おぼえておこうね。プログラムを途中で止める時はSTARTボタン。

STARTボタン

ハカセ

ワシじゃワシじゃ、プチコンではブイブイいわせとるハカセじゃ。
インテリ君、STARTボタンとはイキナリひとつ飛ばしで教えるではないか。そこらも合わせて、3DSのボタンのセツメイじゃぞい。

途中停止
もともとプログラムを止めるのは専用のSTOPボタンを使うものだったのじゃ。それはプチコンの画面にも key_stop.png コレがあるのじゃが、その代わりになるのが3DSのSTARTボタンなんじゃな。ポチッと押すだけでプログラムが止まるぞい。
ワシもふだんはSTARTを使うタイプじゃな。なんかラクなんじゃよ。
簡易実行
ジツはRUN命令を使わなくても、3DSのSTARTボタンを押すとプログラムの実行になるのじゃ。EDITモードからボタン1つでイキナリじゃから、こりゃラクじゃな。つまり、実行も停止もSTARTボタンひとつでオッケーというわけじゃ。
インテリくん

さて、無限ループをしないように、PRINT”AAA”の後に1行ふやしてみようか。

  1. GOTO @B
  2. @A
  3. PRINT”AAA”
  4. END
  5. @B
  6. PRINT”BBB”
  7. GOTO @A
神崎

あっ、前におぼえたプログラムを終わらせるEND命令だね。こういうトキにEND命令にイミが出てくるんだね。

  1. BBB
  2. AAA
  3. OK
ワンパクくん

フムム……しかしコレ、こうして見るとGOTO使わなくてもフツーにこう書けばすむんじゃねェか?

  1. PRINT”BBB”
  2. PRINT”AAA”
インテリくん

その通り。あっちに行ったりこっちに行ったりするプログラムは、見る方もこんがらがるから「スパゲッティプログラム」と呼ばれて、良くないものとされているね。
じゃあ何のためにラベルとGOTO命令があるのか? それは次のサンプルで確かめていこう!

ワンパクくん

ケッキョクまたそのパターンかよ!

今回のまとめ

ラベル
先頭の後に英数字で、ラベルになります。
GOTO命令
GOTO @(ラベル名)
指定したラベルまでジャンプします。
STARTボタン
STARTボタンでプログラム実行(RUN)され、実行中のときは停止します。

メニュー 【3号】

ヘルプ

リンク

最近の更新

最近の人気ページ

オンライン情報

  • 現在同時に 10 人がこのサイトを見ています
  • このページはこれまでに 4774 回、本日は 4 回、昨日は 4 回閲覧されました

ページの先頭に戻る

表示モード : [ スマホ・3DS対応表示 | クラシック表示 ]
PukiWiki 1.4.7 Copyright © 2001-2006 PukiWiki Developers Team. License is GPL. Based on "PukiWiki" 1.3 by yu-ji
ページの処理時間 : 0.049 秒 | このページの最終更新 : 2016/07/09 (土) 17:58:41 (1329d) | ログイン
Copyright(C) 2011-2014 プチコンまとめWiki ◆1sxkymI8ji30