今回の動画は「if文の中にもif文を使えるぞ」という内容の物だった訳ですが、
「If文の中にIf文を使う」事を専門用語で「ネスト(入れ子)」といいます。
ちなみにこの補足ページでも以前紹介した、
msgbox(sqr(25))
なども「関数のネスト(入れ子)」だったりします。
で、今回は余り補足する事が無い訳ですが、幾つか・・・
まず、
if
(a=10) then
end if
と、
if a=10 then
end
if
は等価(全く同じ)です。
if文は「何重にも」する事ができるので・・・
※以下自分の組んだプログラムからの流用コード(VB6.0)
VB6.0なので微妙な書き方の違いはありますが参考までに。
If
GetAsyncKeyState(KeyCtrl) Then
'兵器切り替えボタンの感知は有効か?(押しっぱなしにされていないのか?)
If .WeaponChangeBottunFlag Then
'切り替えが有効なので切り替え
.WeaponChangeBottunFlag =
False
'感知を無効(押しっぱなしの回避)
'特殊兵装を選択しているか?
If .SPWeaponSelectFlag
Then
'特殊兵装を選択していて(つまりミサイルに切り替える)ミサイルが残っていたら
If
.MissileCount > 0 Then
'ミサイルは残っている
If
MyChar.SPMissile.MissileType = SemiActive
Then
...以下省略。
これを見て、
「GetAsyncKeyState(KeyCtrl)」は「関数だろうな」
「.WeaponChangeBottunFlag」は「変数の中身を直接if文の条件に使用しているんだな(以前の補足ページ参照。)」
と、何となくでも頭に浮かんだ人は理解している人という事になります。
ちなみに「GetAsyncKeyState(KeyCtrl)」は動作と見た目は関数ですが
「正確には」関数ではありません。(この意味はマメ知識ページとか作って紹介するかも知れません。)
動画中で比較演算子(不等号)が紹介されていましたが、後の動画にある模様なのでここでは省きます。
今回は余り補足できる事が無い(今までの応用であるため。)のでこの辺で・・・
※ちなみに当たり前ですが・・・
If
〜 then
[処理]
Else
[処理]
End If
とある時、やりたい事次第でIfの方にのみ
If 〜
Then
If 〜Then
End If
[処理]
Else
[処理]
End
If
If 〜 Then
[処理]
If 〜Then
End
If
Else
[処理]
End If
If 〜 Then
If
〜Then
[処理]
End If
Else
[処理]
End
If
でも、Elseの方にのみ
If 〜 Then
[処理]
Else
[処理]
If
〜Then
End If
End
If
とやる事も
両方に入れる事もできますし
どのような書き方でもできます。
「プログラムをどう流れさせたいか」によって「どうIf文を組むべきか?」を考えて
プログラマはプログラムを組んで行きます。