if文(質問掲示板

投稿: User icon mini 退会したユーザー 投稿:2009/12/28 07:51:28(最新:2009/12/28 21:16:28)
選択肢を表示させるスクリプトの中でif文を書いた場合、if文にendは書かないといけないのですか?

コメントする

コメントするには、ログインする必要があります。

コメント一覧

Zararu128x128 mini dycoon(投稿日:2009/12/28 21:16, 履歴)
Rmakeのご利用ありがとうございます。

shirosabotenさんが答えていますが、
一応一般的な場合について説明を書いてみたいと思います。

if, case, while, defなどはendまでで一つの文です。
else, elsif, whenなどは文の中の区切りです。
if, case, while, defなどの文を入れ子構造で使う場合は
それぞれに対応するendが必要です。
たとえば次のような形です。

if true
  if true
    if true
       speak("test")
    end
  else
    if true
       speak("dont reach")
    end
  end
end


case getVariable("変数")
  when 0
    if true
      speak("test 0")
    end
  when 1
    if true
      speak("test 1")
    end
end


これらのコードは何をするというものでもありませんが、
文法的な構造を見る上で参考にしていただければと思います。

よろしくお願いします。
      mini shirosaboten(投稿日:2009/12/28 11:38, 履歴)
dycoonさん>code抜けてたみたいです><;お騒がせしました。ありがとうございます。
Zararu128x128 mini dycoon(投稿日:2009/12/28 11:12, 履歴)
Rmake記法の
codeで書けているようです。
Zararu128x128 mini dycoon(投稿日:2009/12/28 11:11, 履歴)
書けるはずなのですが・・・
ちょっと試してみます。

case getVariable("変数1")
  when 0
    if getFlag("フラグ1")
      speak("フラグ1が立っています")
    else
      speak("フラグ1が立っていません")
    end
  when 1
    speak("変数1が『1』なのでフラグ判定がされません")
end

      mini shirosaboten(投稿日:2009/12/28 10:42, 履歴)
運営さん>整形済みテキストはコメントでは書けないんでしょうか?

下のコメントの抜けてしまった例です。整形してないので見にくいですが、ご了承ください。

case getVariable("変数1")
when 0
if getFlag("フラグ1")
speak("フラグ1が立っています")
else
speak("フラグ1が立っていません")
end
when 1
speak("変数1が『1』なのでフラグ判定がされません")
end
      mini shirosaboten(投稿日:2009/12/28 10:36, 履歴)
ifはendで閉じないと動作しません。

『選択肢を表示させるスクリプトの中で』というのが良くわからないですが、
おそらくcase文中にif文を挿入することが出来るのか、と言う質問内容だと思ってお答えしますと、問題なく出来ます。例を挙げます。
[ case getVariable("変数1") when 0 if getFlag("フラグ1") speak("フラグ1を取得しています") else speak("フラグ1を取得していません") end when 1 speak("変数1は1です") end ]

非常に簡略化するとこういう構造です。(これ自体をコピペしてもうまく動作しません)
ifに対応するend,caseに対応するend,人間が見たらどれかわからなくなるかもしれませんが、機械は区別してくれるので大丈夫です。

見当違いだったらすみません。