2013-06-24 4 views
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 "오류에 밑줄이 그 어져 있습니다. Strict는 부울에서 정수로 암시 적 변환을 허용하지 않습니다. 왜? 정수로 c를 선언했습니다!
  2. 변수 "B"와 "C"는 경우가 = 30 및 C = 1

사람이 나에게이 동작을 설명해주십시오 수 있습니다 ㄱ해야 위의 경우에도 "0"항상.

답변

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 
+0

대단원! 고맙습니다. 알고 있으면 도움이됩니다. – ruedi

관련 문제