0

我有以下代码:

Sub Main()
    Dim a As Integer = 8 * 60
    Dim b As Integer
    Dim c As Integer
    If a < (6 * 60) Then
        b = 0 And c = 0
    ElseIf a >= 6 * 60 And a < 9 * 60 Then
        b = 30 And c = 1
    Else
        b = 45 And
       c = 1
    End If
    MsgBox(b)
End Sub

认为我不明白,在哪里需要别人的帮助:

  1. "c=0" 和 "c=1" 带有错误下划线:严格不允许从布尔到整数的隐式转换。为什么?我将 c 声明为整数!
  2. 变量“b”和“c”始终为“0”,即使在上述情况下它们应该是 b=30 且 c = 1。

谁能解释一下这种行为。

4

1 回答 1

3

您正在使用And不允许的关键字。And是一个逻辑运算符(与Or, AndAlso,OrElse . 一起)

以下应该工作。

Sub Main()
    Dim a As Integer = 8 * 60
    Dim b As Integer
    Dim c As Integer
    If a < (6 * 60) Then
        b = 0
        c = 0
    ElseIf a >= 6 * 60 And a < 9 * 60 Then
        b = 30
        c = 1
    Else
        b = 45
        c = 1
    End If
    MsgBox(b)
End Sub
于 2013-06-24T12:06:00.733 回答