微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决所以我希望程序在用户输入“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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?