Public Function GetF() As Single Dim nf As Single, nff As Single Dim i As Integer If fpk <> 0 Then nf = f / advol * loadt / fpk nff = nf If DlXTData.fxx(fpk).B <> 0 Then If nf < DlXTData.fxx(fpk).c(0) Then nff = nf + DlXTData.fxx(fpk).a(0) - DlXTData.fxx(fpk).c(0) End If For i = 0 To 9 If nf >= DlXTData.fxx(fpk).c(i) And nf < DlXTData.fxx(fpk).c(i + 1) Then nff = DlXTData.fxx(fpk).a(i) + (DlXTData.fxx(fpk).a(i + 1) - DlXTData.fxx(fpk).a(i)) / (DlXTData.fxx(fpk).c(i + 1) - DlXTData.fxx(fpk).c(i)) * (nf - DlXTData.fxx(fpk).c(i)) End If Next i If nf >= DlXTData.fxx(fpk).c(10) Then nff = nf + DlXTData.fxx(fpk).a(10) - DlXTData.fxx(fpk).c(10) End If nf = nff End If Else nf = 0 mF = nf mFcs = 0 End If GetF = nf End Function 程序中第一个if和第二个if之间没有else是不是省略了?怎么解释这个嵌套语句呢?
<>
0则执行那一大堆的
代码
,包括嵌套里面的If,和For那些。否则(就是fpk
=
0)则执行else后面的内容,即:
nf
=
0、mF
=
nf那些。”
程序先判断最外层的If是否有条件满足,这一题的话,如果fpk
<>
0,那么执行后继的两条
语句
,
然后再执行“If
DlXTData.fxx(fpk).b
<>
0
Then”,
如果条件不满足,则直接跳到这个If语句的后面,(因为这个If的后面就是Else了,所以接下来会执行GetF
=
nf)。
如DlXTData.fxx(fpk).b
<>
0满足,则执行这个If语句(If
DlXTData.fxx(fpk).b
<>
0
Then)里面的内容,里面还有If语句,同样用这种方法判断。
PS:If语句就是“如果条件成立,就执行If里面的内容。如果有Else,则在条件不成立时执行Else的内容,如果没有Else,则跳过If语句,执行If语句后面的内容。”不管嵌套多少层,结果都是一样的判断方法!
PPS:建议,看代码的时候,从上到下,一句一句看,会比较好懂!前面没看完,就想到后面的话,很容易被混淆的!