일상적으로 개선 할 수있는 몇 가지 사항이 있습니다. 우선, 비교해야한다 : 어떤 부호없는 정수는 항상 true로 평가하기 때문에 당신이 If a = 6 or 7 or 8 ...
하기 전에 그 일을했다
If a = 6 Or a = 7 Or a = 8 Or a = 9 Or a = 10 Or a = 11 Or a = 12 Then
방법이 작동하지 않습니다. 결과적으로 코드는 항상 b = true
이되었습니다. Visual Basic은 기본적으로 부울을 false로 초기화하므로 check
에 아무 것도 지정하지 않으므로 check = false
에 항상 거짓이 표시됩니다.
반면에 참조로 값을 전달하는 대신 함수를 작성합니다. 함수는 필요한 모든 계산을 수행하고 값을 리턴합니다. 당신이 그 일을했다
Function salomonsize(ByVal a As Integer) As Boolean
If a = 6 Or a = 7 Or a = 8 Or a = 9 Or a = 10 Or a = 11 Or a = 12 Then
Return True
Else
Return False
End If
End Function
Private Sub btnCompute_Click(sender As Object, e As EventArgs) Handles btnCompute.Click
Dim check = salomonsize(txtSalomonSize.Text)
If check = False Then
MsgBox("Wrong size")
Exit Sub
End If
End Sub
방법, 당신은 b = true
및 b = false
할당했다 : 전체 코드는 다음과 같습니다. 나중에 확인하는 값이기 때문에 check
을 대신 true 또는 false로 지정해야한다고 생각합니다.
편집 : 당신이 볼 수 있듯이 당신이 더 이상 번호를 추가해야하는 경우
Function salomonsize(ByVal a As Integer) As Boolean
Dim ValidNumbers As Integer() = {6, 7, 8, 9, 10, 11, 12}
If ValidNumbers.Contains(a) Then
Return True
Else
Return False
End If
End Function
, 당신은 단순히에 추가 :이 작업을 수행하고 많은 비교를 피하기 위해 더 좋은 방법은 배열을 사용하는 것 배열 필요한 경우 파일에서 읽을 수도 있습니다. 그런 다음 .Contains
함수를 사용하여 값을 비교하십시오. Return ValidNumbers.Contains(a)
을 단순히 수행하고 If/Else를 완전히 피할 수 있습니다.
Function salomonsize(ByVal a As Integer) As Boolean
Dim ValidNumbers As Integer() = {6, 7, 8, 9, 10, 11, 12}
return ValidNumbers.Contains(a)
End Function
와우! 빠른 입력에 감사드립니다. 그래서 나는 꽤 오랫동안 이걸 가지고 놀았으므로 도움이된다. 내가 더 높은 평판을 가졌다면 투표를 할 것이지만, 여기에 도움이되는 사람들을 만나서 반갑습니다. 다시 한 번 감사드립니다! – DodgerT
@DodgerT 도움이 된 것을 기쁘게 생각합니다. –