分岐、繰り返し2

分岐 -Select Case-

分岐にはIf文です。If 式 Thenです。
例えば、ユーザのキーに対応するプログラムを作る時、If文を使って以下のプログラムが考えられます。
#console
#include<vcrt71.sbp>

Dim c As Long
c = getchar()
If c >= Asc("a") Then c = c-&h20'cが小文字のとき大文字にする。

If c = Asc("A") Then printf(Ex"About\n")
If c = Asc("E") Then printf(Ex"End\n")
If c = Asc("F") Then printf(Ex"File\n")
If c = Asc("H") Then printf(Ex"Help\n")
補足説明
Asc関数は文字コード、アスキーコードを調べる関数です。Aは65、aは97になります。
数値の前に&hを付けると16進数になります。&h20=32です。

このようにしても動きますが、分岐の数だけIf Thenを書かなくてはいけないのでたいへんです。
そこでSelect Case文を使うと楽になります。
#console
#include<vcrt71.sbp>

Dim c As Long
c = getchar()
If c >= Asc("a") Then c = c-&h20'cが小文字のとき大文字にする。

Select Case c
    Case Asc("A")
        printf(Ex"About\n")
    Case Asc("E")
        printf(Ex"End\n")
    Case Asc("F")
        printf(Ex"File\n")
    Case Asc("H")
        printf(Ex"Help\n")
End Select

繰り返し -Whele Wend-

繰り返しにはWhile文というのがあります。
While 式
  処理
Wend
式が真のあいだ、Wendまでの処理を繰り返します。

#console
#include<vcrt71.sbp>

Dim c As Long

c = 0
While c <> Asc("E")
c = getchar()
If c >= Asc("a") Then c = c-&h20'cが小文字のとき大文字にする。

Select Case c
    Case Asc("A")
        printf(Ex"About\n")
    Case Asc("E")
        printf(Ex"End\n")
    Case Asc("F")
        printf(Ex"File\n")
    Case Asc("H")
        printf(Ex"Help\n")
End Select
Wend
これでEを入力するまで繰り返すことができます。
Forが何回繰り返すという意味合いが強いのに対し、Whileはある条件になるまで繰り返すという意味合いが強いです。

繰り返し -DO Loop-

While文は始めに比較を行いますがDo Loop文を使うと終わりに比較を行うことができます。
Do
  処理
Loop [While 式]

#console
#include<vcrt71.sbp>

Dim c As Long

c = 0
Do
c = getchar()
If c >= Asc("a") Then c = c-&h20'cが小文字のとき大文字にする。

Select Case c
    Case Asc("A")
        printf(Ex"About\n")
    Case Asc("E")
        printf(Ex"End\n")
    Case Asc("F")
        printf(Ex"File\n")
    Case Asc("H")
        printf(Ex"Help\n")
End Select
Loop While c <> Asc("E")
LoopのあとのWhileで式の判定を行います。Whileは省略でき、省略すると無限ループになります。

Exit文

ループを途中で抜け出すためにExit文があります。
Exit For、Exit While ,Exit Doで、Exitの後にそれぞれ対応する文を付けます。
細かい説明はしませんがDo Loopの時は必要になると思います。
#console
#include<vcrt71.sbp>

Dim c As Long

c = 0
Do
c = getchar()
If c >= Asc("a") Then c = c-&h20'cが小文字のとき大文字にする。

Select Case c
    Case Asc("A")
        printf(Ex"About\n")
    Case Asc("E")
        printf(Ex"End\n")
        Exit Do'Doループを抜ける
    Case Asc("F")
        printf(Ex"File\n")
    Case Asc("H")
        printf(Ex"Help\n")
End Select
Loop

諸悪の根源 -Goto文-

最後にGoto文です。これは無条件にプログラムの流れを変えることができます。
Goto ジャンプ先ラベル
...
ラベル
ラベルは*から始まる文字です。*startとか*cleanとか*から始まる好きな名前を付けることができます。
GotoとIfを使ったループ例です。
#console
#include<vcrt71.sbp>

Dim c As Long

c = 0
*start
c = getchar()
If c >= Asc("a") Then c = c-&h20'cが小文字のとき大文字にする。

Select Case c
    Case Asc("A")
        printf(Ex"About\n")
    Case Asc("E")
        printf(Ex"End\n")
    Case Asc("F")
        printf(Ex"File\n")
    Case Asc("H")
        printf(Ex"Help\n")
End Select
If c = Asc("E") Then Goto *label
Goto *start
*label
Gotoは使いすぎるとプログラムのメンテナンスがしにくくなるので、使わないほうが良いと言われています。
Gotoをどうしても使わなければプログラムできない例はめったに無いと思います。