トピック
受付中
こってぃ~^∀^ AOSIMAKOUSAkousa

「GOTO」の使い方を教えてください

『今日買ったばかりです』 GOTOはどうやって使うのですか? 例などがあるとわかりやすいです! 答えてくれた方全員フォローいたします!
2そうだね
プレイ済み
返信[1]
親投稿
こりんご koringods
IFとGOTOがあれば、簡単なゲームっぽいもの作れちゃいますので便利です。 先にラベルの概念をば。 @ABC ←文字の頭に@を付けることでラベルっていうのになります。こいつはいわゆる「しおり」みたいなもんで、GOTO でそのしおりのとこへ瞬時に移動できます。 @START PRINT "ようこそプチコンのせかいへ" WAIT 60 GOTO @START PRINT は文字を書く命令です。WAIT は数字分待ってねってことで、それを終えたらGOTO で@STARTのしおりのとこに移動…ということで、実行すると文字を書いて待つ…を繰り返します(STOPボタンで止めてね)
3そうだね
プレイ済み
返信[2]
親投稿
@ここは適当 ~ GOTO @ここは適当 これは、プログラムのループです。 ループなら、 WHILE~WEND REPET~Uなんとか となんかもループです。 これだったらSTOPをせずにループを脱出出来ます。 BREAKを使うだけです。 GOTOでやりたいなら、(いやGOTOでもBREAK使えたっけ?)GOUSB @ここは適当を使えばいいです。 (急に他の命令使われてもなぁと思ったらゴメンネ…)
2そうだね
プレイ済み
返信[3]
親投稿
ループ…分かるよね… (ループ=繰り返し)
1そうだね
プレイ済み
返信[4]
親投稿
こりんご koringods
@START PRINT "クジヲヒキマス" A=RND(10) REPEAT UNTIL BUTTON (2)==#A IF A==0 THEN GOTO @ATARI ELSE PRINT "ハズレデス、ザンネン" GOTO @START @ATARI PRINT "オオアタリデス!オメデトウ!" GOTO @START Aに0~9までの10個の数字のどれかをランダムに入れて、もしそれが0だった時だけオオアタリになるプログラムです。REPEAT UNTIL はAボタン押されるまで待ってるというものです。 なんかこれだけですでにゲームっぽいじゃないですか。こっから改造したりして、他にどんなものができるか自由な発想で考えていってください。応援してます(*´ー`*)
3そうだね
プレイ済み
返信[5]
親投稿
だにえる haru2016nen
こういう使い方をすることは殆どないけど、 GOTO@SKIP PRINT "しょうがいぶつ" @SKIP って風にして処理を飛ばすことも可能。 ループだけじゃなく、色々と使い道がある。
3そうだね
プレイ済み
返信[6]
親投稿
SEKI22 rcftgrsfrr578
単純に言うと 強制分岐
2そうだね
プレイ済み
返信[7]
親投稿
・制御構文の一種(プログラムの順番に変化をつけたいときに使うもの。) ・なので、GOTOとラベルだけ書いても見た目に変化はありません ・プチコンの制御構文の中ではかなり自由度が高い。そのかわりミスが発見しにくくなるので、あんまり使わない。 個人的に、よく使うのが「条件によっては処理を飛ばしたいとき」 IF-THEN構文との組み合わせです。 だにえるさんのサンプルにひとひねり加えると 「FLAG」を調べて、0のときだけ「しょうがいぶつ」を表示しない例です。 IF FLAG==0 THEN @SKIP ←THENの後ろのGOTOは省きます PRINT "しょうがいぶつ" @SKIP
2そうだね
プレイ済み
返信[8]
親投稿
制御構文(など)の一覧 GOTO文 GOSUB~RETURN構文 IF~THEN構文 WHILE~WEND構文 REPEAT~UNTIL構文 FOR~NEXT構文 まで書いて力尽きてしまった (SPFUNCとか「画面表示と密接にかかわる」ものもあるけど、いきなり使いこなせるものではない)
3そうだね
プレイ済み
返信[9]
親投稿
プログラムって上から順番にしか実行できないのです(超大事) 上から順番にしか実行できないのを、制御するための処理が GOTO だったり、あまさとしおんさんが書いている制御構文だったりします。 こりんごさんが書いているように、次はどこを実行するかを指定するのに「@」を付けた名前を書くことで「ラベル」になって、GOTOやGOSUBで指定できるようになります GOSUBでラベルに飛んだらRETURNでGOSUBを呼んだ次に戻ってきます。 ラベルで指定する以外にも、IF文は条件が成立するかしないかで ELSEやENDIFの次が実行できるようになるし FOR-NEXTもカウント中はNEXTが実行されたらFORまで戻ります。 こういった制御で次に実行する処理はプログラムのどこかを制御することで いろいろなプログラムが作れるようになります
3そうだね
プレイ済み
返信[10]
親投稿
こってぃ~^∀^ AOSIMAKOUSAkousa
回答ありがとうございます! これではできないのですか?
0そうだね
プレイ済み
返信[11]
親投稿
こりんご koringods
最後の行に@が足りない…( ; ゜Д゜)
3そうだね
プレイ済み
返信[12]
親投稿
うえのうえの、 BEEP 2 GOTOにラベルがありません!
1そうだね
プレイ済み
返信[13]
親投稿
こってぃ~^∀^ AOSIMAKOUSAkousa
これでいいですか?
0そうだね
プレイ済み
返信[14]
親投稿
SEKI22 rcftgrsfrr578
A$="@A" @A GOTO A$ なんてやり方も
2そうだね
プレイ済み
返信[15]
親投稿
こってぃ~^∀^ AOSIMAKOUSAkousa
こうですか?
0そうだね
プレイ済み
返信[16]
親投稿
こってぃ~^∀^ AOSIMAKOUSAkousa
どうですか?
1そうだね
プレイ済み
返信[17]
親投稿
(プログラムが正しく動くかどうか確かめるには「実行」しましょう。スタートボタンが便利。)
0そうだね
プレイ済み
返信[18]
親投稿
実行して様子がおかしいなら画面の写真を見せるのが良いです。
0そうだね
プレイ済み