在Vb.net中使用If-Statement作为For-Loop的测试条件

路加

我已经在Vb.net中编写了一些软件,并且在程序中出现了一个问题,那就是最好将if语句放在for循环的标题中。

例如,在Java中,我可以像这样实现我所需要的。

for (int I = 0; myArray[I].compareTo("") == 0; I ++)
{
    'code here
}

不幸的是,在Vb.net中,我所知道的唯一方法是在for循环中将一个数字递增到给定的数字。但是我知道,我可以做的事可以通过在for循环中使用if-test来完成。

For I as Integer = 0 To myArray.length 'only possible test is comparison between two ints

    'code here
    If myArray(I).compareTo("") <> 0 Then
       Exit For
    End If

Next

这样做不是什么大不了的事情,但是如果有一种方法可以将其更多地简化为for循环控制,那么我想知道现在和将来的参考。

所以我的问题是,是否可以在Vb.net的for循环头中检查if条件(而不是比较两个数字)?

更新:针对@Olivier Jacot-Descombes的回答,我只是想澄清一下,我知道while循环用于测试循环中的if条件,但是它们失去了for循环所具有的自动递增功能。在Java中,for循环可以同时实现这两个功能。这就是为什么我想知道Vb.net是否以某种方式在for循环控件的标头中全部具有相同的功能。

斯莱

最简洁的答案是不。Visual Basic语言没有C / java样式for()循环之类的东西

更长的答案是,根据您的需要,您甚至可能不需要循环。

Dim a = {"a", Nothing, "", "b"}

' this will print from 0 to 1, but Array.IndexOf returns -1 if value is not found
For i = 0 To Array.IndexOf(a, "") - 1
    Debug.Print(i & "")
Next

For Each item In a : If item = "" Then Exit For ' this is actually 2 lines separated by : 
    Debug.Print("'{0}'", item)
Next

For Each item In a.TakeWhile(Function(s) s > "") ' TakeWhile is a System.Linq extension
    Debug.Print("'{0}'", item)
Next

a.TakeWhile(Function(s) s > "").ToList.ForEach(AddressOf Debug.Print) ' prints a

a.TakeWhile(Function(s) s > "").ToList.ForEach(Sub(s) Debug.Print(s)) ' prints a

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在VB.NET中使用停止条件进行递归

来自分类Dev

如何在vb.net中使用XML节点的if条件

来自分类Dev

XPath查询可在XPath测试器中使用,但不能在VB.NET中使用

来自分类Dev

在VB.NET中使用Linq获取ID列表作为字符串列表(Of)

来自分类Dev

如何在VB.NET中使用一组变量创建条件语句

来自分类Dev

使用组合框作为过滤器在 vb.net 中使用 sql 按时间显示图表

来自分类Dev

在VB.NET中使用系统表

来自分类Dev

在VB.NET中使用DataURL

来自分类Dev

在Javascript中使用vb.net代码

来自分类Dev

在vb.net中使用ANSI代码

来自分类Dev

在VB ASP.NET中使用HighCharts

来自分类Dev

在vb.net中使用RegEx

来自分类Dev

在VB.NET中使用字节

来自分类Dev

在vb.net中使用MATLAB函数

来自分类Dev

在vb.net中使用Excel

来自分类Dev

在vb.net中使用ANSI代码

来自分类Dev

在VB.NET中使用Linq

来自分类Dev

在Vb.net中使用Order By排序

来自分类Dev

通过功能作为参数在vb.net?

来自分类Dev

如何根据条件在整个列中使用vb代码

来自分类Dev

如何使用xsl:number count作为xsl:if测试条件的条件?

来自分类Dev

如何配置RazorEngine使用VB作为语言?

来自分类Dev

使用VB函数作为SqlDataSource SelectParameter值

来自分类Dev

在VB.NET中使用JSON.NET组织数据

来自分类Dev

在VB.NET中使用AForge.NET反转图像

来自分类Dev

如何使用VB.Net在datagridview中使用CellEndEdit事件?

来自分类Dev

VB.Net登录框测试

来自分类Dev

如何在.vb文件中使用常量定义作为.ascx页中元素的ID?

来自分类Dev

在Mongoose中使用数组作为搜索条件