アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんばんは

VBS・・に限ったことじゃないかもしれませんが、プログラミングにおける、条件分岐(IF、Select文)についての正しい知識を教えて頂きたいです。

IF文、Select文の処理がどのように行われているかについてです。
①上から順番に条件式の判定が行われ、合致した後は最後までスキップされる?
②上から順番に条件式の判定行われ、合致した後も1行ずつ進んでいく?
③全体の条件式を判定した後、合致するものまで戻り処理を行い、最終行までスキップされる?
④その他

また、変数を条件式に指定し、処理内容で変数を別の値や文字に変えた場合、途中の変数の状態はどのようになっているのでしょうか?

すなわち、極端な例で書きますが

0001:Dim i
0002:i = 0
0003:IF i = 0 then    ←条件に合致するので処理後、iは1となりますが、その後は
0004:i = i + 1       行9999に飛ぶのでしょうか、それとも行4から順に下へと進んで                いくのでしょうか
0005:ElseIF i = 1 then ←行4により、iは1となっているが、ここの式の判定は行われない?
0006:i = i + 1      それとも、iは元の値0して判定が行われている?
0007:ElseIF i = 2 then


9999:End IF 


よろしくお願いします。

A 回答 (3件)

vbsに限った話ですけど、vbsでは変数の宣言にデータ型を指定できません。


最適と思われるモノがその都度採用されます。

dim v
msgbox typename(v)
v=1
msgbox "v=1 " & typename(v)
v=v*100000
msgbox "v*100000 " & typename(v)
v=v/1
msgbox "v/1 " & typename(v)
v=v & "a"
msgbox "v & ""a"" " & typename(v)
    • good
    • 0

> VBS・・に限ったことじゃないかもしれませんが、プログラミングにおける、条件分岐(IF、Select文)についての正しい知識を教えて頂きたいです。



If文は同じかもしれませんが、少なくともSelect文(に相当する文)は言語によって動作が異なります。
ですから、プログラムの各箇所で状態を表示させて確認してみては如何でしょうか。

---test.vbs------------------
Dim i
i = 0

IF i = 0 Then
i = i + 1
MsgBox "Thenを通過、i=" & i
ElseIf i = 1 Then
i = i + 1
MsgBox "最初のElseを通過、i=" & i
ElseIf i = 2 Then
i = i + 1
MsgBox "2番目のElseを通過、i=" & i
Else
MsgBox "最後のElseを通過、i=" & i
End IF
MsgBox "終了、i=" & i
    • good
    • 1

ifまたはelseifの条件が真で、then部が実行される場合は、次のelseまたはelseifまたはend ifに達したら、end if の次に飛びます。


selectの場合も同様。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!