我可能有一个简单的问题,但它使我震惊。我有一些代码可以对其进行重构,但是无法通过此语句弄清楚作者的想法
If (j > 0) Then greatThanPrec = greatThanPrec And (signalAmplArray(i) > signalAmplArray(j))
我想我知道基本的
If Then else
是如何工作的,但是无法意识到为什么之后会出现A = A
之类的东西,然后AND
也许是一些短暂的情况,例如C / C ++? 最佳答案
该特定的And
与If Then
无关。Then
之后的代码仅根据是否greatThanPrec
更新signalAmplArray(i) > signalAmplArray(j)
。如果greatThanPrec
和True
均为greatThanPrec
,signalAmplArray(i) > signalAmplArray(j)
将保持为True
,否则将变为False
。
为了更好地看到它,请将signalAmplArray(i) > signalAmplArray(j)
替换为其可能的值。您将获得两个选择:
greatThanPrec = greatThanPrec And True 'greatThanPrec does not change its value
greatThanPrec = greatThanPrec And False 'greatThanPrec becomes false
如果您想重构它,那将是
If (j > 0) Then
If Not (signalAmplArray(i) > signalAmplArray(j)) Then
greatThanPrec = False
End If
End If