我编写了if...else
语句,该语句使用数组myArr
和字符串myStr
,如下所示:
If myArr.Length > 0 AndAlso myArr(0) = "-1" Then
'Do stuff 1
ElseIf myStr= "xyz" Then
'Do stuff 2
ElseIf myArr.Length > 0 Then
'Do Stuff 3
Else
'Do Nothing
End If
它完全按照我的需要工作。但它看起来真的很混乱,主要是因为数组长度被检查两次。必须有更清晰的方式来编写它,但我想不出一个。
只是为了澄清....每个语句的执行顺序至关重要。即,东西1优先于东西2,其优先于东西3。
答案 0 :(得分:2)
我认为你不能以更简单的方式获得完全相同的流程。
要么你最终会做不同的事情,要么做重复的事情。例如:
If myArr.Length > 0 Then
If myArr(0) = "-1" Then
'Do stuff
Else
'Do stuff
End If
ElseIf myStr= "xyz" Then
'Do stuff
Else
'Do Nothing
End If
当myArr(0)<>时,这将导致mystr =“xyz”不会发生-1,而它之前可能有。
答案 1 :(得分:1)
您可以通过使用嵌套的myArr.Length
语句来摆脱对If
的多次检查,但这会使代码不那么清晰。
clear 方法(即可以轻松理解的方法)是一种允许您读取代码片段而无需记住代码执行的上下文的方法。通过嵌套If
语句,必须在读者工作记忆(或短期记忆)中保留更多信息,以推断出代码的含义。
答案 2 :(得分:0)
您可以像这样分解语句:
If myArr.Length > 0 Then
If myArr(0) = "-1" Then
'Do stuff
Else
'Do sstuff
End If
Else
If myyStr= "xyz" Then
'Do stuff
End If
End If
答案 3 :(得分:0)
我想这可以解决问题:
If myArr.Length > 0 Then
If myArr(0) = "-1" Then
'Do stuff
Else
'Do stuff
End If
ElseIf myStr= "xyz" Then
'Do stuff
Else
'Do Nothing
End If
答案 4 :(得分:0)
如果
,则需要嵌套If myArr.Length > 0 Then
'Do stuff for non zero length
If myArr(0) = "-1" Then
'Do stuff for -1 and you already have checked for array length
End If
End If
答案 5 :(得分:0)
If myArr.Length > 0 Then
If myArr(0) = "-1" Then
' Stuff 1
Else
' Stuff 3
End If
ElseIf myStr = "xyz"
' Stuff 2
End If
......没有其他需要