如何在VB中的While循环中添加Or?

发布于 2024-09-16 09:02:21 字数 602 浏览 3 评论 0原文

目前,假设我有这段代码:

     While r <> "HI"
        r = RandomStringGenerator(1)
        time = time + 1
        Console.WriteLine(r)
    End While

我该如何制作它,以便我基本上可以这样说:

    While r <> "HI" Or While r <> "BY"
        r = RandomStringGenerator(1)
        time = time + 1
        Console.WriteLine(r)
    End While

我已经尝试过:

    While r <> "HI" Or r <> "BY"
        r = RandomStringGenerator(1)
        time = time + 1
        Console.WriteLine(r)
    End While

但它仍然不起作用!这是怎么回事?

Currently, lets say that I have this code:

     While r <> "HI"
        r = RandomStringGenerator(1)
        time = time + 1
        Console.WriteLine(r)
    End While

how can I make it so that i can say basically this:

    While r <> "HI" Or While r <> "BY"
        r = RandomStringGenerator(1)
        time = time + 1
        Console.WriteLine(r)
    End While

I've alreadly tried:

    While r <> "HI" Or r <> "BY"
        r = RandomStringGenerator(1)
        time = time + 1
        Console.WriteLine(r)
    End While

But it still doesn't work! What's up with this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

嗼ふ静 2024-09-23 09:02:21

您编写条件的方式将始终为真,并且循环将无限进行。

r <> "HI" Or r <> "BY"

这本质上是说

如果 r 不等于“Hi”或 r 不等于“By”

这对于存在的每个字符串都是如此。如果字符串既不是“hi”也不是“by”,听起来您想继续。如果是这样,请尝试以下

While r <> "HI" AndAlso r <> "BY"
    r = RandomStringGenerator(1)
    time = time + 1
    Console.WriteLine(r)
End While

最后一点是,您应该更喜欢 OrElse 而不是普通的 Or,并且 AndAlso 而不是普通的 And 。前一个版本都是短路操作,后一个版本则不是。

The way you've written your conditional it will always be true and the loop will go infinitely.

r <> "HI" Or r <> "BY"

This essentially says

If r is not equal to "Hi" or r is not equal to "By"

This will be true for every single string in existence. It sounds like you want to continue if the string is neither "hi" or "by". If so try the following

While r <> "HI" AndAlso r <> "BY"
    r = RandomStringGenerator(1)
    time = time + 1
    Console.WriteLine(r)
End While

One minor final point is you should prefer OrElse to plain Or and AndAlso to plain And. The former versions are both short circuiting operations while the latter or not.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文