VB中If条件语句与Select Case语句的区别

2024年12月04日 10:54
有5个网友回答
网友(1):

IF是按表达式进行判断的,Select Case是按条件进行判断的,如果你在Select Case里写表达式,那如果表达式中第一段条件是TURE,就会进入运算,后半段表达式是不参与运算的
Case Is < 1: Y = X
Case Is >= 1 < 10: Y = 2 * X - 1
Case Is >= 10: Y = 3 * X - 11
如果你输入11
这个数不小于1,跳过第一个Case Is
这个数>=1返回TURE,进入第二个Case Is开始运算
如果第二行改一下
Case Is < 1: Y = X
Case Is < 10 : Y = 2 * X - 1
Case Is >= 10: Y = 3 * X - 11
你输入11
这个数不小于1,跳过第一个Case Is
这个数不小于10,跳过第二个Case Is
这个数大于10,进入第三个Case Is
你输入5,
这个数不小于1,跳过第一个Case Is
这个数小于10进入第二个Case Is
===============
也就是说Case Is >= 1 < 10: Y = 2 * X - 1中“小于10”这个条件没参与运算

网友(2):

Case Is >= (1 < 10): Y = 2 * X - 1

Case Is >= True: Y = 2 * X - 1
中,括号先运算,1 < 10的结果为真(ture)所以有上面的就是下面的。
更进一步,ture作为一个数值来使用的话旧又成了“1”,所以:
Case Is >= (1 < 10): Y = 2 * X - 1
相当于
Case Is >= True: Y = 2 * X - 1
又相当于
Case Is >= 1: Y = 2 * X - 1
又相当于
if x >= 1 then Y = 2 * X - 1

网友(3):

Private Sub Command1_Click()
X = Val(InputBox("请输入自变量X"))
Select Case X
Case Is < 1: Y = X
' Case 1 To 10: Y = 2 * X - 1
' Case Is >= 1 < 10: Y = 2 * X - 1'实际上只>=-1 而未 <10
Case Is >= 10: Y = 3 * X - 11
Case Is >= 1: Y = 2 * X - 1'一定要放在>=10语句后面,否则只执行本句而>=10句子不会执行!
End Select
Label1.Caption = "函数运算的结果为:" & Y
End Sub

网友(4):

Case Is >= 1 < 10: Y = 2 * X - 1
相当于
Case Is >= (1 < 10): Y = 2 * X - 1

Case Is >= True: Y = 2 * X - 1
在X大于等于10时总是运行这一句,应改成如下:
Case Is < 10: Y = 2 * X - 1

网友(5):

我怀疑“Is >= 1 < 10”不对,两个判断连起来以后意思就不一样了。(Is >= 1)<10永远成立,因为它是布尔值

改成这样吧:

Select Case X
Case Is < 1: Y = X
Case Is >= 10: Y = 3 * X - 11
Case Else: Y = 2 * X - 1
End Select