Branching

From Apache OpenOffice Wiki
Jump to: navigation, search


使用分支语句可以限制执行代码块,直到特定条件满足。


If...Then...Else

最常用的分支语句是 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 的值被指定为2时 A 大于3,否则 B 的值被指定为0。


对于更复杂语句,可以级联的 If 语句,例如:


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


如果该值的变量 A 等于零, B 的值指定为0。 如果 A 小于3(但不等于0),则 B 的值指定为1。 在所有其他情况下(也就是说,如果 A 大于或等于3) B 的值指定为2。



一个全面,声明可写在单一行,并使用一种简单语法。 第一个例子此页面可以写成:


If A > 3 Then  B = 2

第二个示例,此页面可以写成:

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


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 (including the values 1 and 5).
  Case > 100
    ' ... Var is greater than 100
  Case 6, 7, 8                  
    ' ... Var is 6, 7 or 8
  Case 6, 7, 8, > 15, < 0
    ' ... Var is 6, 7, 8, greater than 15, or less than 0
  Case Else
    ' ... all other instances
End Select


现在请考虑不正确(高级)和生成常见的错误:


Select Case Var
  Case Var = 8
    ' ... Var is 0
  Case Else
    ' ... all other instances
End Select


说明(Var = 8)计算为true var8,否则为False。 为true,-1和设置为false,0。 "Select Case语句的求值的表达式,它是True或False,然后比较的值设置为var。 当var0,则匹配。 如果您知道最后一个示例,则您还知道为何本示例不做它显示


Select Case Var
  Case Var > 8 And Var < 11
    ' ... Var is 0
  Case Else
    ' ... all other instances
End Select


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