所以我希望程序在用户输入“N”时计算用户输入的成绩

问题描述

我创建了一个名为 grades 的数组,提示用户输入一个成绩,然后它会询问用户他/她是否想输入更多成绩。用户只需要再次输入一个等级,然后按N,如果用户想停止输入等级,程序应该开始计算等级。但我被困在这里

这是我的代码

Sub Main()
    Dim inputhere,a,b As Integer
    Dim prompt As String
    a = 0
    Dim grades(a) As Integer

    Console.Write("Enter Grade: ")
    inputhere = Console.ReadLine()
    grades(0) = inputhere


    While True
        Console.Write("Enter Again [Y/N]: ")
        prompt = Console.ReadLine()
        If prompt = "Y" Then
            b = a + 1
            Console.Write("Enter Grade: ")
            inputhere = Console.ReadLine()
            grades(a) = inputhere
        ElseIf prompt = "N" Then
            grades(a) += inputhere / b
            Console.Write("Average: ")
        End If
    End While
    Console.ReadKey()
End Sub

this is the output

所以结果是它不计算成绩而是继续循环。

解决方法

您没有任何退出条件。所以要么你强制它要么改变你的循环条件

这里有两个选项:

  1. 在您的计算块中添加一个 Exit While
    While True
        ' ....
        If prompt = "Y" Then
            ' ....
        ElseIf prompt = "N" Then
            grades(a) += inputhere / b
            Console.Write("Average: ")
            Exit While
        End If
    End While
  1. 改变你的 while 条件
    Dim keepAsking As Boolean
    keepAsking = True
    While keepAsking
        ' ....
        If prompt = "Y" Then
            ' ....
        ElseIf prompt = "N" Then
            grades(a) += inputhere / b
            Console.Write("Average: ")
            keepAsking = False
        End If
    End While

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...