したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |
レス数が900を超えています。1000を超えると投稿できなくなるよ。

【初心者歓迎】プチコンなんでも相談室【質問専用スレ】

730名無しさん:2015/03/28(土) 08:32:41 ID:MNK4RpLw
>>727
「ELSEIF THENで改行が無いと」とおっしゃっているのは、
プチコン3号の構文解析の仕様のせいだと思います。

「ダメなコード例」を順番に見てみると、
1行目のIF THEN は、THENの後が空白ではなく命令が書かれているので、
ブロック型のIF文の書き方ではないと判断されていると思います。
その次のうちにIF文は終わり、と判断されてしまった後で、
2行目で、IF文が無いのに急にELSEIFが出てきて、ダメだと言われます。
THEN(とELSE)の後に何も書かれないまま改行になるかどうか、が
プチコン3号の構文解析がブロックとみなすかどうかの条件だと思います。

判断に使いたい条件が==(完全一致)だけならば、
>>728 のような方法で良いと思います。
プチコン3号では、ラベルと同じ行に命令を書けるようになったので、
ある程度スッキリ書けますね。

こんな工夫した書き方もあります。
REPEAT IF !CHKLABEL("@CASE_"+STR$(A)) GOTO @DEFAULT ELSE GOTO "@CASE_"+STR$(A)
  @CASE_1:  ANS=XXX  BREAK
  @CASE_2:  '2の場合は3と同じ結果にする例
  @CASE_3:  ANS=ZZZ  BREAK
  @DEFAULT:  ANS=0
UNTIL 1
見た目優先の書き方ですね、処理が軽いかどうかは分かりません。
また、もっと柔軟な条件式を使いたい場合は、
こんなような書き方ではきっと無理だと思います。


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板