You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB.NET中判断字符串不相等的运算符及Do Until代码写法咨询

VB.NET中字符串不相等判断及循环代码修正

刚好熟悉VB.NET的语法,来帮你梳理下问题:

首先,关于字符串不相等的判断:

  • VB.NET里没有C#那种!=运算符,正确的不等于运算符是<>,比如判断test不等于"1234"可以写test <> "1234"。
  • 如果你想用Equals方法来判断不相等,需要用Not关键字(而不是你写的!,!是C#的逻辑非符号),也就是Not test.Equals("1234")。

然后看你的循环代码,这里有两个关键问题:

  1. 语法错误:VB.NET中逻辑非用Not,不是!;
  2. 逻辑错误:原代码的Do Until !test.equals("1234") Or !test.equals("xyxyxyx")逻辑有问题——因为一个字符串不可能同时等于"1234"和"xyxyxyx",所以这个条件永远为True,循环会无限执行下去。

假设你的需求是循环直到test等于"1234"或者等于"xyxyxyx"(也就是满足任一条件就停止循环),正确的代码写法有两种:

方法1:使用Equals方法 + 短路逻辑运算符

Do Until test.Equals("1234") OrElse test.Equals("xyxyxyx")
    ' 这里写你的循环体代码,比如获取新的test值
Loop

这里用OrElse而不是Or是因为它是短路求值——只要第一个条件满足,就不会再判断第二个,能提升一点效率。

方法2:使用<>/=运算符

Do Until test = "1234" Or test = "xyxyxyx"
    ' 循环体代码
Loop

这种写法更简洁,也是VB.NET里比较常用的方式。

如果你的需求是循环直到test既不等于"1234"也不等于"xyxyxyx"(两个条件都不满足时停止),那正确的条件应该是:

Do Until test <> "1234" AndAlso test <> "xyxyxyx"
    ' 循环体代码
Loop

或者用Not结合Equals:

Do Until Not test.Equals("1234") AndAlso Not test.Equals("xyxyxyx")
    ' 循环体代码
Loop

最后再提醒下:VB.NET对大小写不敏感,但Equals方法默认是区分大小写的,如果需要不区分大小写的判断,可以用test.Equals("1234", StringComparison.OrdinalIgnoreCase)这种写法哦。

内容的提问来源于stack exchange,提问作者dieMstar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:27:42