簡體   English   中英

遇到Console.Writeline問題

[英]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 AdderAdder切換,並擦除了一些非本質的內容。

希望這是您想要的。

暫無
暫無

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

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