簡體   English   中英

如果……那么……其他Visual Basic 2012

[英]If…Then…Else Visual Basic 2012

我正在嘗試在Visual Basic 2012中創建一個應用程序,我在努力使其符合參數。 我究竟做錯了什么? 每次我嘗試添加Else時,都說必須在前面加上一個If。 問題:

為大學的招生辦公室編寫程序。 創建存儲數字化的高中平均成績和入學考試分數的變量(例如,如果gpa> = 3.6,而分數> = 60,則可以使用兩個不同的標准,例如使用“和”)。學生具有以下任何一項:

  • 平均績點3.6或以上,入學考試分數至少60
  • 平均績點3.0或以上,入學考試分數至少70
  • 平均績點2.6或以上,入學考試分數至少80
  • 平均績點2.0或以上,入學考試分數至少90

如果學生不符合任何資格,則打印“拒絕”。 下圖為您提供了界面外觀的參考。

    If txtGPA.Text >= 3.6 And txtAdmissionTestScore.Text >= 60 Then txtAdmissionResult.Text = "Accept"
    If txtGPA.Text >= 3.6 And txtAdmissionTestScore.Text <= 59 Then txtAdmissionResult.Text = "Reject"

    If txtGPA.Text >= 3.0 And txtAdmissionTestScore.Text >= 70 Then txtAdmissionResult.Text = "Accept"
    If txtGPA.Text >= 3.0 And txtAdmissionTestScore.Text <= 69 Then txtAdmissionResult.Text = "Reject"

    If txtGPA.Text >= 2.6 And txtAdmissionTestScore.Text >= 80 Then txtAdmissionResult.Text = "Accept"
    If txtGPA.Text >= 2.6 And txtAdmissionTestScore.Text <= 79 Then txtAdmissionResult.Text = "Reject"

    If txtGPA.Text >= 2.0 And txtAdmissionTestScore.Text >= 90 Then txtAdmissionResult.Text = "Accept"
    If txtGPA.Text >= 2.0 And txtAdmissionTestScore.Text <= 89 Then txtAdmissionResult.Text = "Reject"

    If txtGPA.Text <= 1.9 And txtAdmissionTestScore.Text <= 59 Then txtAdmissionResult.Text = "Reject"

您需要做這樣的事情。 注意我先檢查通用條件,然后再檢查子條件,子條件是接受還是拒絕。 因此,您只需要測試一個即可。

If txtGPA.Text >= 3.6 Then 
    If txtAdmissionTestScore.Text >= 60 Then 
        txtAdmissionResult.Text = "Accept"
    Else
        txtAdmissionResult.Text = "Reject"
    End If
ElseIf txtGPA.Text >= 3.0 Then   
    If txtAdmissionTestScore.Text >= 70 Then 
         txtAdmissionResult.Text = "Accept"
     Else
         txtAdmissionResult.Text = "Reject"
     Endif
ElseIf ...

End If

這只是道格拉斯·巴賓(Douglas Barbin)的代碼,其格式經過了重新設置以提高可讀性(顯然,這是很主觀的!), 最后一個條件已被刪除,因為您不能接受GPA低於2.0的情況。 我還添加了檢查以確保輸入的GPA和測試分數分別是有效的double和integer:

    Dim GPA As Double
    Dim AdmissionTestScore As Integer
    If Double.TryParse(txtGPA.Text, GPA) AndAlso Integer.TryParse(txtAdmissionTestScore.Text, AdmissionTestScore) Then
        Dim shouldAccept As Boolean = _
            (GPA >= 3.6 AndAlso AdmissionTestScore >= 60) OrElse _
            (GPA >= 3.0 AndAlso AdmissionTestScore >= 70) OrElse _
            (GPA >= 2.6 AndAlso AdmissionTestScore >= 80) OrElse _
            (GPA >= 2.0 AndAlso AdmissionTestScore >= 90)
        txtAdmissionResult.Text = If(shouldAccept, "Accept", "Reject")
    Else
        MessageBox.Show("Invalid GPA and/or Admission Test Score!")
    End If
Dim shouldAccept As Boolean = (txtGPA.Text >= 3.6 AndAlso txtAdmissionTestScore.Text >= 60) OrElse _ 
    (txtGPA.Text >= 3.0 AndAlso txtAdmissionTestScore.Text >= 70) OrElse _
    (txtGPA.Text >= 2.6 AndAlso txtAdmissionTestScore.Text >= 80) OrElse _
    (txtGPA.Text >= 2.0 AndAlso txtAdmissionTestScore.Text >= 90)

txtAdmissionResult.Text = If(shouldAccept, "Accept", "Reject")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM