【问题标题】:Best practice for 'if' statements that exceed the 10 line continuation limit in Visual Basic 6.0在 Visual Basic 6.0 中超过 10 行继续限制的“if”语句的最佳实践
【发布时间】:2012-02-08 05:42:21
【问题描述】:

例子:

If condition or _
   condition or _
   condition or _
   condition or _
   condition or _
   condition or _
   condition or _
   condition or _
   condition or _
   condition or Then
    Do something
End If

假设我需要评估的条件不止这 10 个...有没有比嵌套多组这些 if 语句更好的方法?

【问题讨论】:

  • 您也可以在一行中放置多个条件,但这可能会影响可读性。

标签: if-statement vb6 limit continuations


【解决方案1】:

您可以使用 Case 语句。比ifs 干净一点:http://msdn.microsoft.com/en-us/library/cy37t14y%28v=vs.80%29.aspx

【讨论】:

  • 嗯,这需要在它们之间放置“做某事”功能。或为每个人更新一个标志。从长远来看,似乎比嵌套 ifs 代码更多。
  • @TonyRaymond 这取决于条件。如果您正在检查一个表达式是否匹配一组值,Select Case 是完美的。例如,要检查变量 a 是否具有一组值中的一个,请执行此操作 Select Case a: Case 1, 2, 3, 4, 5, 6, 7, 8, 9, 10: do something
  • 链接(实际上)已损坏:“Visual Studio 2005 Retired documentation”
【解决方案2】:

这里有一个选项——一次做一个测试,用布尔值跟踪最终结果。完成后,只需测试布尔值。

Dim A As Long
Dim B As Long
Dim C As Long
Dim D As Long

Dim Result As Boolean

Result = True
Result = Result And (A > 10)
Result = Result And (B > 10)
Result = Result And (C > 10)
Result = Result And (D > 10)

If Result Then
    ' Do "something" here...
End If

如果 A、B、C 或 D 中的任何一个小于 10,Result 将翻转到 False 并从那时起保持这种状态。如果所有测试都通过,则只有True。

【讨论】:

  • 这很优雅,我喜欢。谢谢!
【解决方案3】:
Dim Result as boolean
result = false
If condition1 Then result = true
ElseIf condition2 Then result = true
ElseIf condition3 Then result = true
ElseIf condition4 Then result = true

If result Then debug.print "Success"

如果您想在条件不相同的情况下使用 select 语句,请使用:

Select Case True
    Case A=5,b=10,c="my answer",d=11
      ....
End Select

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-30
    • 2016-07-30
    • 1970-01-01
    相关资源
    最近更新 更多