投稿
nobu divine-creator
変数への代入についての疑問ですが、一度でも通過したルートにあった変数への代入は、どこまで有効なのでしょうか? また、通過しているのにスルーされてしまうという場合はありますか?
0そうだね
プレイ済み
返信[1]
親投稿
ナツキ natukin1978
関数(DEF)で定義した変数はその関数に居る間、有効です。
0そうだね
プレイ済み
返信[2]
親投稿
nobu divine-creator
例えば、全く同じ変数に別の数字を代入したら、その場合はどうなるの? まず、A=1を通過して、 次に、A=2を通過したら、 A=?
0そうだね
プレイ済み
返信[3]
親投稿
通常は、 グローバル変数(DEFーENDの外で使っている変数) 1)代入する。 2)ダイレクトモードでRUNを実行する。 3)EXECを実行する。 4)USEで実行可能にする。 5)ダイレクトモードでCLEARを実行する。 ローカル変数(DEFーENDの中でVAR/DIM宣言している変数) 1)代入する。 2)ユーザ定義命令の処理が終わる。 だと思います。
0そうだね
プレイ済み
返信[4]
親投稿
ナツキ natukin1978
変数なので、後から値の変更が可能です。
0そうだね
プレイ済み
返信[5]
親投稿
ナツキ natukin1978
補足ですが、関数(DEF)で定義した変数はローカル変数と云って、関数の外に同じ名前があったとしても違う変数として扱われます。
0そうだね
プレイ済み
返信[6]
親投稿
通過しているのにスルーしているように見えるのは、 1)通過していない。 2)通過した後、他で代入している。 3)変数名が間違っている。 などが考えられます。
1そうだね
プレイ済み
返信[7]
親投稿
nobu divine-creator
なるほど、ありがとうございます♪ つまり、同じ変数に別の数字が代入されると、新しい数字に変わるということですね♪
2そうだね
プレイ済み
返信[8]
親投稿
ナツキ natukin1978
変わる数と書いて「変数」。(変な数ではない) プチコンにはないですが、一度決定したら変更できない「定数」ってのもあります。
0そうだね
プレイ済み
返信[9]
親投稿
けい kei0baisoku
「変数」を、何か1つだけ確実に覚えてくれる「人」だと思うとイメージしやすいかもしれません。 名前(変数名)が違えば違う人で、同じなら必ず同一人物です。 一度「覚えて」と言ったことは、プログラムが終わるまで絶対に忘れません。 でも覚えられるのは一度に1つなので、別の数を覚えさせると前のものは綺麗さっぱり忘れます。 これがプログラムの変数です。 例外がDEFの引数とDEFの中でVARして作った変数で、これはDEFが終わると居なくなります。(忘れるのでなく、居なくなります) もしDEFの外に同名の人がいても、別人扱いされます。
0そうだね
プレイ済み
返信[10]
親投稿
おかっぺ Japanese_WASABI
変数、それはHPみたいなもの。HPと言う名前が付いているけど、値は常に書き換わったりする。 パーティ(配列)を組むと、インデックスごとに値を覚えてくれるもの。1人目と2人目のHPは、同じHPでも違う値を持っているんだ。 DEF、それは異界の言葉。プログラミングを始めた当初、DEFはとても難しい。しかし、異界におけるHPは現世のHPとは違うので、異界でいくらピンチになろうと、現世に帰ることが出来れば、HPは異界に行く前の値に戻る。しかし、異界に行くとプログラムの難度はあがる。 と言う話があったワン!
0そうだね
プレイ済み
返信[11]
親投稿
nobu divine-creator
要するに、一人だけ乗れる舟みたいな物ですね♪ 誰か(けいさん)が乗るには、別の人(うえこうさん)を降ろさなければならない…。(←えっ|д゚)?!トリャー(/・ω・)/!酷っ…(゚Д゚)ノ。) いや、1回中身を捨てるとか言うから…。 でも、バケツの例えは、分かりやすいですね♪ やや分かりにくいのはHPと異世界の例…。(よく読めば分かりますけどね…。)
1そうだね
プレイ済み
返信[12]
親投稿
入れても入れてもいっぱいにならず(ただし、先に入れたものは、どこかにワープして二度と戻らない)、取っても取ってもなくならない不思議なバケツですね。
0そうだね
プレイ済み
返信[13]
親投稿
僕はハコで解説することが多いですが、なんにしても一つしか入らないってのは変わらないですよね〜。新しく入れるなら入れ替えると。 あとは時間軸を意識して使うタイミングの値がその時の値なので、入れ替えたからといって前にその変数を使って表示していたものまで変化はしない(過去は変わらない)って感じですね。
0そうだね
プレイ済み
返信[14]
親投稿
おかっぺ Japanese_WASABI
あちゃー、わかりにくかったですね←僕の説明。 しかも、異界に行っても、新たにVAR/DIMしない限り、現世と同じ変数だし・・うん、説明ベタです。 語尾の件、「語尾に何かをくっつけたくなっちゃう病」になってしまったんでサカナ。
0そうだね
プレイ済み
返信[15]
親投稿
変数の間違えに気づくには面倒ですがUSE STRICTをつけるのが一番良いです。 ただこれをつけると変数をいきなり使用できないので、初めて使う(プログラムが通る)時は、必ずVARを使って宣言(定義)しないといけないですし、二回以上同じ変数でVARを使うと二重定義のエラーになってしまいます。 また関数内でVARをつけたのもは関数の外では利用できないので注意です。 とまあ色々と制約が出来るのですが、その分、正しく使える(間違いに気づいやすくなる)ので、使うメリットはとても大きいのです。
1そうだね
プレイ済み
返信[16]
親投稿
ナツキ natukin1978
昨日、プチコンには定数が無いと書いたけど、誤解を招く書き込みだと思い訂正。 言いたかった事は、自分で定数を作れないという点。 最近追加された、#から始まるキーワードがありますが、あれが定数ですね。
0そうだね
プレイ済み
返信[17]
親投稿
nobu divine-creator
USE STRICT…初耳でした…!OPTION STRICTなら、聞いたことがありましたけど…。 変数って、VARを使って定義しなくても使えたのですか?定義しないと変数は使えないものだと思っていました…。 どうやら問題になっていたのは変数ではなく、条件式のほうだったようです…! 2つまでの条件は分かるのですけど、3つ以上の条件を指定したい場合には、ただANDで並べたのではダメなのですか? 「一つの変数が、ある数以上ある数以下で、別の変数が特定の数だった場合に…」という条件にしたいと考えたのですが、「変数>=数字AND変数<=数字AND変数=数字」だと、マズいですか?
0そうだね
プレイ済み
返信[18]
親投稿
USEはただの間違いです…。いろんな言語をやってると混線する事があります…。 でIFは最後が==なら動くはず?
0そうだね
プレイ済み
返信[19]
親投稿
けい kei0baisoku
nobuさんの条件式は大丈夫そうですね。 その辺になるとプログラムというよりロジックの整理のところですので、少しでもややこしいと思ったら図とか表とか自分が把握しやすい形で整理してみるのオススメです。
1そうだね
プレイ済み
返信[20]
親投稿
ナツキ natukin1978
> 変数>=数字AND変数<=数字AND変数=数字 この部分を実際にプチコンに表示されている通りに書き出したら何か分かるかも。(分からないかもしれないが)
0そうだね
プレイ済み
返信[21]
親投稿
nobu divine-creator
コメントを書いた後に、いろいろと調べていたら、ELSEIFという命令を発見しました! 最初のIFの条件に合わない場合に、続けて別の条件で判定できるんですね! それを使ってみたら、Mr.シンタックスエラーにならなくなりましたw♪ まだ、全てのパターンを試していませんが、何だかうまくいけそうな気がする~♪あると思いますw!
2そうだね
プレイ済み
返信[22]
親投稿
nobu divine-creator
あれ?確か、ポニーテールを選んだはずなのに、何故かロングになっている?(どこかで間違えた?) ボタンを押し間違えたつもりはないし、スプライトの番号も間違えていないはずなんだけど…。 ハッ!夏場だけに霊のせいか?(←自分のミスだろ…。)
0そうだね
プレイ済み