我想在vb。
中执行以下c语句for(int i = 2^20; i > 0; i/=2)
{
printf("%d\n",i);
}
在vb中看起来类似于:
For i As Integer = 2^32 to 0 Step /2
Console.Out.Writeline("{0}", i)
Next
具体地说,每次迭代i除以2的变量不是 合法的vb。
有没有办法使用允许的For语句来写这个?
答案 0 :(得分:4)
不,VB中的FOR循环更短但灵活性更低。
显而易见的解决方法当然是一个While循环。
' untested
Dim i As Integer = 2^30 ' 2^32 will overflow
While i >= 0
Console.Writeline("{0}", i)
i = i Div 2
End While
答案 1 :(得分:1)
有两种典型方法:
前一种方法是我经常使用的方法;我相信LINQ包含一些方法来促进后一种方法(比如Enumerable.Range),但我不知道细节。