投稿
R.M MAKKUdaisuki
ローカル変数ってなんのことですか? 具体的にどんなことができるのか教えてくれたら嬉しいです!
2そうだね
プレイ済み
返信[1]
親投稿
普通の変数はわかりますか? ローカル変数は関数(DEF)の中だけで使える一時的な変数のことです。これが無いと変数の名前が重複しないように常に意識しなければいけませんし間違えて同じ名前をつけて書き換えてしまうことも多いので長いプログラムになると重宝します。昔のBASICには無かったんですけどね
0そうだね
プレイ済み
返信[2]
親投稿
R.M MAKKUdaisuki
ありがとうございます!
0そうだね
プレイ済み
返信[3]
親投稿
おかっぺ Japanese_WASABI
説明はでんべんさんの書いている通りですね。GOTO文の使い方はわかると思いますが、GOSUB 文を使ったことはありますか? GOSUB 文はGOTO と同じ様に、別の場所にある@の処理をよびだすのですが、RETURN 文を見つけると、GOSUB した行の次の行に処理が戻ってきます。 @MAIN GOSUB @JIKI '自機を動かす GOSUB @TEKI '敵を動かす GOTO @MAIN @JIKI ※自機の処理 RETURN @TEKI ※敵の処理 RETURN と、書いてプログラムを読みやすくしたり、同じことを何度もするときに、便利な命令です。
0そうだね
プレイ済み
返信[4]
親投稿
おかっぺ Japanese_WASABI
GOSUB 文を使っていると、FOR 文の中から、GOSUB した時に、FOR 文で使っていた変数を上書きしてしまうミスをよくします。 @MAIN FOR X=0 TO 10 LOCATE X,0:PRINT X GOSUB @SUB NEXT END @SUB FOR X=0 TO 3 PRINT X NEXT RETURN
0そうだね
プレイ済み
返信[5]
親投稿
おかっぺ Japanese_WASABI
@MAINだけをみてると、0から順番に表示される気がしますが、GOSUB 先で、Xを書き換えてしまうので、いつまでたっても終わらないプログラムになります。 GOSUBの様に移動先の処理をした後に戻ってくる様な場合は、移動前の変数の値を書き換えたく無いんですね。
0そうだね
プレイ済み
返信[6]
親投稿
おかっぺ Japanese_WASABI
DEF文はGOSUB と同じ様に、いった先の処理をして、戻ってくるものですが、いった先で作った変数は、移動前の変数とは別に管理されます。 @MAIN FOR X=0 TO 10 PRINT X CALL "SUB" NEXT END DEF SUB FOR X=0 TO 3 PRINT X NEXT END
0そうだね
プレイ済み
返信[7]
親投稿
おかっぺ Japanese_WASABI
DEFを覚えると、GOSUB を使う必要はない、と言われます。(ここでは、何が便利か、を説明するため、GOSUB の例を書きました。) GOSUB / DEF に慣れたら、とっても便利で感動しますよ♪
0そうだね
プレイ済み
返信[8]
親投稿
R.M MAKKUdaisuki
いろいろ情報ありがとうございます!
0そうだね
プレイ済み