决策树true或false运算符vb.net

时间:2014-11-07 22:19:46

标签: vb.net

我想知道是否有人可以帮助决策树逻辑。目前它似乎传递了所有真正的错误陈述,并被最后的其他陈述所困。我的学习能够理解逻辑中的失败在哪里。

干杯, 乙

Partial Class _Default
Inherits System.Web.UI.Page

Protected Sub Button1_Click(ByVal sender As Object, _
    ByVal e As System.EventArgs)

      Dim Name As Boolean = False
      Dim fileUp As Boolean = False
      Dim fileSize As Boolean = False
      Dim fileCheck As Boolean = False
      Dim FileOK As Boolean = False
      Dim fileTypeCheck As String = String.Empty
      Dim fileSizeCheck As Integer

      If TextBox1.Text = String.Empty Then
                     Name = False
      Else 
                     Name = True
      End If

      If FileUploadControl.HasFile Then
                     fileUp = True
      End If

      fileSizeCheck = FileUploadControl.PostedFile.ContentLength
      If fileSizeCheck < 56320 Then
                     fileSize = True
      End If

      fileTypeCheck = FileUploadControl.PostedFile.ContentType
      If fileTypeCheck = "text/plain" Then
                     fileCheck = True
      End If

      If Name = false
                     StatusLabel.Text = "Update Status: Please Enter Your Name Logon"

      ElseIf Name = True And fileUp = False
                     StatusLabel.Text = "Update Status: Please Enter List to be uploaded"

      ElseIf Name = False And fileUp = False
                     StatusLabel.Text = "Update Status: Update Status: Please Enter Your Name and List to be uploaded"

      ElseIf Name = True And fileUp = True And fileSize = False
                     StatusLabel.Text = "Update Status: Only text files under 55kb can be accepted"

      ElseIf Name = True And fileUp = True And fileSize = True And fileCheck = False
                     StatusLabel.Text = "Upload status: Cannot Accept File. Only text files are accepted"

      ElseIf Name = True And fileUp = True And fileSize = True And fileCheck = True
      fileOk = True
      End IF


      If fileOK Then
           Try        
                Dim objFSO, objFolder
                objFSO = CreateObject("Scripting.FileSystemObject")
                objFolder = "D:\PSTMailBoxReports\uploads\" & TextBox1.Text & "-" & DateTime.Now.ToString("yyyyMMdd-HHmmss-fff")
                If objFSO.FolderExists(objFolder) = True Then
                    StatusLabel.Text = "Upload status: folder exists"
                ElseIf objFSO.FolderExists(objFolder) <> True Then
                    objFSO.CreateFolder(objFolder)
                    System.IO.Directory.SetCurrentDirectory(objFolder.ToString)
                    StatusLabel.Text = "Upload status: Entering New Upload folder please wait"
                    StatusLabel.Text = "Upload status: Creating Upload folder " & objFolder & ", Please now wait"
                    Dim physicalFolder = System.IO.Directory.GetCurrentDirectory().ToString
                    Dim fileName As String = Guid.NewGuid().ToString
                    Dim extension As String = System.IO.Path.GetExtension(FileUploadControl.FileName)
                    FileUploadControl.PostedFile.SaveAs(System.IO.Path.Combine(physicalFolder, fileName + extension))
                    StatusLabel.Text = "Upload status: File uploaded!"
                End If

            Catch ex As Exception

            End Try
        Else
            StatusLabel.Text = "Upload status: Error Please Retry "
        End If
    'End If
End Sub

结束班

1 个答案:

答案 0 :(得分:0)

这是一个提示并非完整的解决方案,因为您没有显示输入样本。

您需要确保所有案例都得到处理(请参阅下面的可能值。给定4个二进制变量,您将获得2x2x2x2个案例。您可以使用此表来构建正确的IF / ELSE结构。

Name    FileUp  FileSize FileCheck
FALSE   FALSE   FALSE    FALSE
FALSE   FALSE   FALSE    TRUE
FALSE   FALSE   TRUE     FALSE
FALSE   FALSE   TRUE     TRUE
FALSE   TRUE    FALSE    FALSE
FALSE   TRUE    FALSE    TRUE
FALSE   TRUE    TRUE     FALSE
FALSE   TRUE    TRUE     TRUE
TRUE    FALSE   FALSE    FALSE
TRUE    FALSE   FALSE    TRUE
TRUE    FALSE   TRUE     FALSE
TRUE    FALSE   TRUE     TRUE
TRUE    TRUE    FALSE    FALSE
TRUE    TRUE    FALSE    TRUE
TRUE    TRUE    TRUE     FALSE
TRUE    TRUE    TRUE     TRUE

在您的代码中,您首先要测试:

IF Name=False

然后经过几次测试后,你会这样做:

ElseIf Name = False And fileUp = False

当(name = false)时,最后一个测试将永远不会执行,因为第一个if处的动作将首先执行而if将终止。

换句话说,上述两行并不相互排斥。

因此,您需要小心使用ELSEIF,以便每个测试与其他测试相互兼容。

我还建议您使用调试来查看条件的测试方式。