• 締切済み

WSHで分岐のプログラミング

学校の宿題で WSHの分岐のプログラミングをしています。 とちゅうで、質問の「はい」を押しても続きがでません。 エラーになってるわけでもありません。 3つ目の分岐点からなんですが… WSHの分岐 って、数に制限があったりするんでしょうか… 教えてくださいッ汗

みんなの回答

回答No.4

#2 Wizard_Zeroです。 プログラムの文法自体は間違っていないのでエラーは出ません。 ご提示されたコードは、そのようにコーディングされているのでエラーでも分岐の制限でもありません。 「ミルクをいれますか?」で「はい」を選択するとそこでプログラムが終了するようになっているだけです。 本来ならばSubプロシージャやFunctionプロシージャで分岐処理を小分けにすることをお勧めしますが、宿題とのことなので何かコーディング制限があるのでしょうかね。 これだけ深い層までネスティングするとケアレスミスも発生しやすくなります。一度流れ図を書いて、コードと比較してみると、間違っている部分が見つけやすくなると思います。

回答No.3

宿題とのことなので、具体的なアドバイスはしません。 とりあえず、「どこから動かなくなったか」を調べればそこに原因があるはずです。 そのコードを削って(例えば○階層より深いIFの中を削除) それで動くかどうかを確認。動くなら少しずつ戻していって動くかどうか確認。 で、それを繰り返すと場所の特定はできるんじゃないかと。

回答No.2

コンピュータである以上、いずれは限界や制限があるとは思いますが、今までそのような壁にぶちあたったことはありません。 単純にコーディングミスだと思われます。 具体的にどのようなコードを書いているか解りませんので、これ以上の回答は出せません。

  • koko_u_u
  • ベストアンサー率18% (216/1139)
回答No.1

不具合が再現するソースを補足にどうぞ。

mei_K
質問者

補足

長ったらしいですが; これデス↓ Dim a,b,c,d,e,f,g,h,i,j,k a=msgbox("ジュースは好きですか?",4) if a=6 then c=msgbox("炭酸がいいです。",4) elseif a=7 then b=msgbox("コーヒーと紅茶ならコーヒー派です。",4) if b=6 then d=msgbox("ミルク入れますか?",4) elseif b=7 then e=msgbox("紅茶より日本茶です。",4) if d=6 then f=msgbox("ホットですか?",4) elseif d=7 then g=msgbox("ホットですか?",4) if e=6 then h=msgbox("冷やしますか?",4) elseif e=7 then i=msgbox("ホットですか?",4) if f=6 then msgbox"お待たせしました、ホットのカフェオレお持ちしましたー" end if elseif f=7 then msgbox"お待たせしました、アイスカフェオレお持ちしましたー" end if if g=6 then msgbox"お待たせしました、ホットコーヒーお持ちしましたー" end if elseif g=7 then msgbox"お待たせしました、アイスコーヒーお持ちしましたー" end if if h=6 then msgbox"お待たせしました、冷たい日本茶お持ちしましたー" end if elseif h=7 then msgbox"お待たせしました、暖かい日本茶お持ちしましたー" end if if i=6 then j=msgbox("ミルク、入れますか?",4) elseif i=7 then k=msgbox("ミルク、入れますか?",4) if j=6 then msgbox"お待たせしました、ホットミルクティーお持ちしましたー" end if elseif j=7 then msgbox"お待たせしました、ホットの紅茶お持ちしましたー" end if if k=6 then msgbox"お待たせしました、アイスミルクティーお持ちしましたー" end if elseif k=7 then msgbox"お待たせしました、アイスティーお持ちしましたー" end if if c=6 then Dim x const t="炭酸なら?" randomize x=int(rnd*10) select case x case 0,1,2 msgbox"お待たせしました、コーラお持ちしましたー",,t case 3,4,5 msgbox"お待たせしました、ペプシお持ちしましたー",,t case 6,7,8 msgbox"お待たせしました、サイダーお持ちしましたー",,t case else msgbox"お待たせしました、ファンタお持ちしましたー",,t end select end if if c=7 then Dim y const u="炭酸以外なら?" randomize x=int(rnd*10) select case y case 0,1,2 msgbox"お待たせしました、ココアお持ちしましたー",,u case 3,4,5 msgbox"お待たせしました、アクエリアスお持ちしましたー",,u case 6,7,8 msgbox"お待たせしました、シェイクお持ちしましたー",,u case else msgbox"お待たせしました、オレンジジュースお持ちしましたー",,u end select end if お願いします!! ((質問主

関連するQ&A