プチコン3号 SmileBASIC コミュニティ投稿みけらんジェロ chikuwaxx2015/03/09 23:53:28感想プログラムを作ってて行き詰って質問して「今日覚えた事」を。 DEFで宣言した命令の中の変数の値を保持したい場合は同じ変数をDEFの外でも宣言すれば可能。 但しローカル変数扱いで無くなる為注意が必要。 先日公開したニコ風コメントをDEF用として作ってたら同じ位置で表示し続けてたので。9そうだね 12返信プレイ済み2017/11/03 23:02:07に取得
プチコン3号 SmileBASIC コミュニティ返信[1]親投稿みけらんジェロ chikuwaxx2015/3/10 0:06例えば、 WHILE 1:VSYNC 1:K:WEND DEF K P=P+1:PRINT P END これだとPがずっと1を表示しますが、 P=0 WHILE 1:VSYNC 1:K:WEND DEF K P=P+1:PRINT P END これだとPが加算され続けていきます。 この疑問にアドバイスを下さった皆様に改めて感謝いたします。0そうだね プレイ済み2017/11/03 23:02:07に取得
プチコン3号 SmileBASIC コミュニティ返信[2]親投稿おちゃめ ochame_nako2015/3/10 0:07「DEFで宣言した命令の中の変数の値を保持したい場合」というのは「DEF内でグローバル変数を使いたい場合」の方が意図が伝わりやすいと思います。 恐らく初心者向けに分かりやすい記述にしたのでしょうが、グローバル変数が分からない人だとローカル変数も分からないと思います。0そうだね プレイ済み2017/11/03 23:02:07に取得
プチコン3号 SmileBASIC コミュニティ返信[3]親投稿みけらんジェロ chikuwaxx2015/3/10 0:10そうですね。なんか言葉を探してましたがいいのが見つからない状態でしたので。補足ありがとうございます。0そうだね プレイ済み2017/11/03 23:02:07に取得
プチコン3号 SmileBASIC コミュニティ返信[4]親投稿でんぺん DENPEN2015/3/10 0:17ちなみにDEFの中でVARで宣言すれば、同じ名前の変数でもローカル変数になりますよ。 この辺はOPTION STRICTをつけた方がよくわかるかもですね。(つけないとDEFの中でグローバル変数定義されてないのを使えばエラーだし、DEFの中でちゃんと定義すればそれはローカル変数として扱われるし)1そうだね プレイ済み2017/11/03 23:02:07に取得
プチコン3号 SmileBASIC コミュニティ返信[5]親投稿おちゃめ ochame_nako2015/3/10 0:20DEF内で宣言もしくはDEF外で未使用の変数→DEF内でローカル変数として使える DEF外で宣言もしくは使用した変数→DEF内でグローバル変数として使える ローカル変数とグローバル変数を確実に使い分けるためにはちゃんと変数を定義して使うのがベターです。0そうだね プレイ済み2017/11/03 23:02:07に取得
プチコン3号 SmileBASIC コミュニティ返信[6]親投稿けい kei0baisoku2015/3/10 0:33でんぺんさんとおちゃめさんのコメントで十分な気もしますが、見てる初級者の方向けに補足を。 OPTION STRICTが無い状態だと、変数を使おうとした時点で裏で自動的に作られます。 つまり、 (1)DEFの外に既に変数Pがある場合→そのPを使う (2)まだ変数Pが存在しない場合→こっそり「VAR P」した上でたった今作ったPを使う 少し大きいプログラムだとPがどこで作られたものか自分でも分かりづらくなるため、そういう面からも作りやすくするためにOPTION STRICTを付けるのはオススメです。0そうだね プレイ済み2017/11/03 23:02:07に取得
プチコン3号 SmileBASIC コミュニティ返信[7]親投稿ピーナッツ2ごう Hurann-0012015/3/10 2:24突然ムスカのコメント訪問。ではなく、第13回東方公開キー欲しいコメント。ここでこんなコメント出しても意味ないかも知れないが・・・0そうだね 未プレイ2017/11/03 23:02:07に取得
プチコン3号 SmileBASIC コミュニティ返信[8]親投稿イカ ikasan18302015/3/10 10:34DEF使いこなしてる人ってあこがれるわあ。 0そうだね プレイ済み2017/11/03 23:02:07に取得
プチコン3号 SmileBASIC コミュニティ返信[9]親投稿りゅうまご ryumago2015/3/10 11:48DEFも『理解すれば』そこまでややこしいものでもないんですが 理解するまでが少しかかりますよね 繰り返し書くのが面倒な処理をまとめたり こういう命令欲しいんだけど無いんだよな~と思う処理を自分で書けるのが関数なので覚えると便利です DEFをモノにするには小さいテストプログラムをいくつも書いて動きを調べるのが良いですよ ↓テストプログラムの例 DEF ADDDQ S$ OUT RET$ RET$=CHR$(34)+ADDS$+CHR$(34) END S$="もじをダブルクォートでかこむテスト" ADDDQ S$ OUT S$ PRINT S$ 1そうだね プレイ済み2017/11/03 23:02:07に取得
プチコン3号 SmileBASIC コミュニティ返信[10]親投稿りゅうまご ryumago2015/3/10 11:54↑のは引数あり戻り値ありのシンプルな書き方です 戻したい値が2つあるならOUTの後ろに,で区切って変数を増やせばいいし 戻したい値が無いならOUT以降書かなくていい 引数も同じです 戻り値も引数も要らないなら書くのは関数名だけでオーケー 呼び出すときはDEFの行をまるまるコピーしてDEFだけ削れば呼び出せます 何を関数にすると便利かは他の人のプログラムを参考にすると少し見えてくるんじゃないかと思います0そうだね プレイ済み2017/11/03 23:02:07に取得
プチコン3号 SmileBASIC コミュニティ返信[11]親投稿りゅうまご ryumago2015/3/10 13:13あ、サンプルにミスがあったので訂正します RET$=CHR$(34)+ADDS$+CHR$(34) となっているのですが 実際はRET$=CHR$(34)+S$+CHR$(34) が正解です 失礼しました0そうだね プレイ済み2017/11/03 23:02:07に取得
プチコン3号 SmileBASIC コミュニティ返信[12]親投稿イカ ikasan18302015/3/11 0:57おお!なんとなくわかった気が! でも、やっぱり身に付けるには自分で打ち込んで覚えないと駄目ですね。やってみます。1そうだね プレイ済み2017/11/03 23:02:07に取得