プチコン3号 SmileBASIC コミュニティ投稿0918nobita nobita09182015/05/06 07:51:18def isReserved(str$)~end についてですが、 このコードだと"in"や"do"を引数にしてもfalseが返されます… data文で書いてある文字列と一致すればtrueを返すようにしたいですが、 どうすればいいですか?0そうだね 7返信プレイ済み2017/11/03 21:23:51に取得
プチコン3号 SmileBASIC コミュニティ返信[1]親投稿おにぎり EasyPuzzler652015/5/6 8:03word$に最初何も入っていないので、while文の条件がいきなり成立して1回もループが回っていないと思います。面倒でも read word$ while word$!="" if str$==word$ then return true read word$ wend return false などと2回read文を書くか、(つづく)2そうだね プレイ済み2017/11/03 21:23:51に取得
プチコン3号 SmileBASIC コミュニティ返信[2]親投稿おにぎり EasyPuzzler652015/5/6 8:07@loop read word$ if len(word$)==0 then return false if str$==word$ then return true goto @loop とでもするか、でしょうか。1そうだね プレイ済み2017/11/03 21:23:51に取得
プチコン3号 SmileBASIC コミュニティ返信[3]親投稿マギー M1912462015/5/6 11:19repeat~untilループ を使う方法もあります。 1そうだね プレイ済み2017/11/03 21:23:51に取得
プチコン3号 SmileBASIC コミュニティ返信[4]親投稿でんぺん DENPEN2015/5/6 12:18これはマギーさんの言うようにrepeat〜untilを使うのが便利なパターンですよね。 ちなみに一時変数のtを用意しなくても見つかったときのthenでreturn trueするようにすればいいとも思いますよ。その場合、見つからなかったとき(ループを抜けた最後)はreturn falseにしておく感じです。1そうだね プレイ済み2017/11/03 21:23:51に取得
プチコン3号 SmileBASIC コミュニティ返信[5]親投稿0918nobita nobita09182015/5/6 13:31皆さんありがとうございます repeat untilって結構使いやすいですね0そうだね プレイ済み2017/11/03 21:23:51に取得
プチコン3号 SmileBASIC コミュニティ返信[6]親投稿でんぺん DENPEN2015/5/6 13:37よく見たらおにぎりさんの例で一時変数を使わない書き方してましたね。失礼しました〜…。 なのでもう一つ、returnを一つにする方法としては、始めにt=falseとしておいて、見つかったときに、t=trueとして最後は、return tとする方法もあります。 まあでもこの場合は見つかったときにすぐreturnする方が素直だと思うので、repeat〜untilを使った上でおにぎりさんの例のように直接returnする方がいいかなとは思います。0そうだね プレイ済み2017/11/03 21:23:51に取得
プチコン3号 SmileBASIC コミュニティ返信[7]親投稿おにぎり EasyPuzzler652015/5/6 20:12じつはrepeat - until はこのケースではそう便利でもないかな~と思っていたのでした。でもこうならいいか。 repeat read word$ until len(word$)==0 || str$==word$ return (str$==word$) 引数に""を渡したときfalseになってほしければ return (len(word$)>0) のほうが若干速いかもしれません。0そうだね プレイ済み2017/11/03 21:23:51に取得