[英]Having trouble with Console.Writeline
有人可以解釋為什么以下代碼不起作用嗎? 應該在一組15個數字中找到平均值,然后為其分配字母等級。 據我所知,問題出在If語句中,盡管我似乎找不到導致問題的原因。
Module Module1
Sub Main()
Dim Input1 As Integer
Dim Input2 As Integer
Dim Input3 As Integer
Dim Input4 As Integer
Dim Input5 As Integer
Dim Input6 As Integer
Dim Input7 As Integer
Dim Input8 As Integer
Dim Input9 As Integer
Dim Input10 As Integer
Dim Input11 As Integer
Dim Input12 As Integer
Dim Input13 As Integer
Dim Input14 As Integer
Dim Input15 As Integer
Dim Adder As Integer
Dim Divider As Integer
Console.WriteLine("Please enter number 1/15")
Input1 = Console.ReadLine()
Console.WriteLine("Please enter number 2/15")
Input2 = Console.ReadLine()
Console.WriteLine("Please enter number 3/15")
Input3 = Console.ReadLine()
Console.WriteLine("Please enter number 4/15")
Input4 = Console.ReadLine()
Console.WriteLine("Please enter number 5/15")
Input5 = Console.ReadLine()
Console.WriteLine("Please enter number 6/15")
Input6 = Console.ReadLine()
Console.WriteLine("Please enter number 7/15")
Input7 = Console.ReadLine()
Console.WriteLine("Please enter number 8/15")
Input8 = Console.ReadLine()
Console.WriteLine("Please enter number 9/15")
Input9 = Console.ReadLine()
Console.WriteLine("Please enter number 10/15")
Input10 = Console.ReadLine()
Console.WriteLine("Please enter number 11/15")
Input11 = Console.ReadLine()
Console.WriteLine("Please enter number 12/15")
Input12 = Console.ReadLine()
Console.WriteLine("Please enter number 13/15")
Input13 = Console.ReadLine()
Console.WriteLine("Please enter number 14/15")
Input14 = Console.ReadLine()
Console.WriteLine("Please enter number 15/15")
Input15 = Console.ReadLine()
Adder = (Input1) + (Input2) + (Input3) + (Input4) + (Input5) + (Input6) + (Input7) + (Input8) + (Input9) + (Input10) + (Input11) + (Input12) + (Input13) + (Input14) + (Input15)
Divider = Adder / 15
If 100 >= Divider >= 90 Then
Console.WriteLine("Your average Grade is an A, and your average in numbers is {0}", Divider)
ElseIf 89 >= Divider >= 80 Then
Console.WriteLine("Your average Grade is a B, and your average in numbers is {0}", Divider)
ElseIf 79 >= Divider >= 70 Then
Console.WriteLine("Your average Grade is a C, and your average in numbers is {0}", Divider)
ElseIf 69 >= Divider >= 60 Then
Console.WriteLine("Your average Grade is a D, and your average in numbers is {0}", Divider)
ElseIf 59 >= Divider Then
Console.WriteLine("Your average Grade is an F, and your average in numbers is {0}", Divider)
End If
Console.ReadLine()
End Sub
End Module
您不能執行以下操作:
If 100 >= Divider >= 90
我認為這被解釋為
If (100 >= Divider) >= 90
比較布爾值轉換為整數的地方。
要檢查該范圍,您需要執行以下操作:
If (100 >= Divider) AndAlso (Divider >= 90)
簡而言之,您的If Check語法不正確
作為補充說明,我建議通過跳過范圍檢查並執行以下操作來利用條件邏輯的優勢:
If Divider >= 90 Then
Console.WriteLine("Your average Grade is an A, and your average in numbers is {0}", Divider)
ElseIf Divider >= 80 Then
Console.WriteLine("Your average Grade is a B, and your average in numbers is {0}", Divider)
ElseIf Divider >= 70 Then
Console.WriteLine("Your average Grade is a C, and your average in numbers is {0}", Divider)
ElseIf Divider >= 60 Then
Console.WriteLine("Your average Grade is a D, and your average in numbers is {0}", Divider)
Else
Console.WriteLine("Your average Grade is an F, and your average in numbers is {0}", Divider)
End If
您在推理中犯了一個錯誤。
在您的情況下, Divider
的最大值為15。因此, Divider
顯然始終為F級。
If Adder >= 90 Then
Console.WriteLine("Your average Grade is an A, and your average in numbers is {0}", Divider)
ElseIf Adder >= 80 Then
Console.WriteLine("Your average Grade is a B, and your average in numbers is {0}", Divider)
ElseIf Adder >= 70 Then
Console.WriteLine("Your average Grade is a C, and your average in numbers is {0}", Divider)
ElseIf Adder >= 60 Then
Console.WriteLine("Your average Grade is a D, and your average in numbers is {0}", Divider)
ElseIf Adder < 60 Then
Console.WriteLine("Your average Grade is an F, and your average in numbers is {0}", Divider)
End If
干得好。 我只是將Divider
Adder
與Adder
切換,並擦除了一些非本質的內容。
希望這是您想要的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.