问题描述
我创建了一个名为 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
所以结果是它不计算成绩而是继续循环。
解决方法
您没有任何退出条件。所以要么你强制它要么改变你的循环条件
这里有两个选项:
- 在您的计算块中添加一个
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
- 改变你的 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