gpt4 book ai didi

vb.net - 在 If 语句中使用 "And"比较整数

转载 作者:行者123 更新时间:2023-12-04 23:07:54 24 4
gpt4 key购买 nike

这可能听起来很愚蠢,但我被卡住了,我没有运气在互联网上搜索会导致这种情况发生的原因。我有一个方法要检查以确保输入的两个整数都是正数:

    Public Function BothPositive(ByVal num1 As Integer, ByVal num2 As Integer) As Boolean
If (num1 And num2) > 0 Then
Return True
Else
Return False
End If
End Function

现在如果我要输入一些数字

  • BothPositive(1,1) = True
  • BothPositive(1,2) = False
  • BothPositive(-10, 10) = True


为什么是这样?比较语句中的操作顺序是怎么回事,或者试图比较的“与”是什么?我不明白为什么这行不通。

编辑:我了解如何解决,但我的问题是为什么会发生这种情况?我想知道是什么导致了这种情况。

最佳答案

在 Vb.Net And代表一个按位运算符,所以你在这里做的是创建一个值,它是按位 ANDnum1num2并将该值与 0 进行比较。您要做的是将每个值单独与 0 进行比较。尝试以下操作

If (num1 > 0) AndAlso (num2 > 0) Then

注意使用 AndAlso在这里而不是普通的旧 And . AndAlso是 bool 运算符与按位运算符,也是短路。你应该几乎总是喜欢它而不是 And

关于vb.net - 在 If 语句中使用 "And"比较整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6652659/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com