如何在FOR ... NEXT循环的最终案例中解释AND逻辑?

时间:2014-01-15 19:27:13

标签: vb.net loops for-loop logical-operators

对于VB.net中的以下FOR循环(我的代码的简化版本),封装的逻辑仅被击中两次。我假设最终案例为10和50将被解释为“如果我<10并且我<50”则继续,但似乎并非如此。

    For i As Integer = 0 To 10 And 50
      '...logic...
    Next

什么是正确的解释,有没有办法创建一个包含多个结束案例的FOR循环?

4 个答案:

答案 0 :(得分:7)

你的循环等同于

    Dim t = 10 And 50
    For i As Integer = 0 To t
        ' something '
    Next

其中10 And 50是对两个AND个数字的按位Integer操作。由于10 And 50返回2,您会从0转到2

答案 1 :(得分:1)

可能And是按位吗? 10 = 8 + 2,50 = 32 + 16 + 2,所以按位,只是2。

答案 2 :(得分:1)

For语句的语法是(编辑为适合):

  

For LoopControlVariable 等于 表达式 To 表达式 [{{1} } 表达式]

因此Step关键字在语句中不起特殊作用,它只是And 表达式的一部分。对于积分操作数,它执行数学AND运算,对积分值中的位执行按位AND。

由于10和50等于00001010而00110010二进制= 00000010(二进制)或2(十进制),因此循环从0到2迭代。

答案 3 :(得分:0)

你想要完成什么?你为什么要为我&lt; 10&i&lt; 50?难道你不需要我&lt; 50?