分岐処理

From Apache OpenOffice Wiki
Jump to: navigation, search
doc OOo
Book.png

指定した条件に応じて、プログラム内の特定のコードブロックのみを実行させたい場合などは、分岐ステートメントを使用します。

If...Then...Else

使用頻度の高い分岐ステートメントの 1 つとして If ステートメントがあり、これは次のように使用します。

If A > 3 Then
  B = 2
End If

このサンプルコードで B = 2 の行が実行されるのは、変数 A の値が 3 より大きい場合だけです。If ステートメントのバリエーションとして、If/Else 句があります。

If A > 3 Then
  B = 2
Else
  B = 0
End If

このサンプルコードで変数 B に代入される値は、変数 A が 3 以上の場合は 2 となり、それ以外の場合 B に代入される値は、0 となります。

If ステートメントをカスケード化して、次のようなより複雑な条件分岐を行わせることもできます。

If A = 0 Then
  B = 0
ElseIf A < 3 Then
  B = 1
Else 
  B = 2
End If

このサンプルコードでは、変数 A の値が 0 であれば、変数 B には 0 が代入されます。変数 A の値が 3 よりも小さければ (ただし 0 とは等しくない)、変数 B には 1 が代入されます。これら以外の場合 (つまり変数 A の値が 3 以上の場合)、変数 B には 2 が代入されます。

Select...Case

Select...Case ステートメントは、If ステートメントのカスケード化と同等の機能を果たすもので、複数の条件に対する分岐を行う際に使用します。

Select Case DayOfWeek
  Case 1:
    NameOfWeekday = "Sunday"
  Case 2: 
    NameOfWeekday = "Monday"
  Case 3: 
    NameOfWeekday = "Tuesday"
  Case 4:
    NameOfWeekday = "Wednesday"
  Case 5:
    NameOfWeekday = "Thursday"
  Case 6:
    NameOfWeekday = "Friday"
  Case 7:
    NameOfWeekday = "Saturday"
End Select

このサンプルコードでは、変数 DayOfWeek の値が 1 であれば Sunday 、2 であれば Monday というように、各曜日の名前を番号で識別させています。

Select コマンドによる条件判定は、単純な 1 対 1 に限定されるものではなく、Case による個々の分岐指定部には比較演算子を使ったり、複数の条件式をリスト化して一括指定することが可能です。次のサンプルコードでは、特に多用される条件判定の例を示します。

Select Case Var
  Case 1 To 5                   
    ' ... Var is between the numbers 1 and 5
  Case 6, 7, 8                  
    ' ... Var is 6, 7 or 8
  Case Var > 8 And Var < 11     
    ' ... Var is greater than 8 and less than 11
  Case Else
    ' ... all other instances
End Select


Content on this page is licensed under the Public Documentation License (PDL).
Personal tools