分岐処理

From Apache OpenOffice Wiki
Jump to: navigation, search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
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