Andalso in vb if statement

时间:2012-10-30 03:16:55

标签: vb.net

以下代码中的错误是什么?我对AndAlso语句感到困惑,不知道它是否正确。以下代码给出了零。

If test >=31 AndAlso test <366 then

    test2=(cstr(Math.Floor(length /10.5)))
    test=(length  Mod 10.5)
    test= (length2 * 10.5)
    test2=cstr(length)

end if

2 个答案:

答案 0 :(得分:1)

AndAlsoAnd相同,但只有AndAlso左侧的表达式才会被测试。有时,如果您执行类似

的操作,它会很有用
if i <= ubound(a) andalso a(i) = 3 then

在您的示例中,如果test为31或更小或test大于366,则不会执行四个赋值语句。如果在执行if语句时测试未定义为零值,则test和test2将不会更改。这可能是你的计划中发生的事情。

答案 1 :(得分:0)

您错过了Then

例如:

If (ThisQuestionHadMoreDetails) Then  '<-- notice the Then

End If