我有这段代码,我花了太多时间,我不明白。它应该得到这些数字的平均值,然后输出答案。我输入名字,然后当我输入数字时,它只需要1,之后我就不能继续了。我是小基础的初学者,我很难理解这一点。我知道visual basic更高级,所以我试着在进入visual basic之前理解一些简单的东西。如果您能给我一些建议,我将不胜感激。
total=0
count=0
TextWindow.WriteLine("What is the students name? :")
name=TextWindow.Read()
While name<>""
TextWindow.Write(" Enter the grades :")
grades=textwindow.ReadNumber()
While grades<>""
total= total+grades
count=count+1
EndWhile
TextWindow.Write(name+ "average is" +total/grades)
TextWindow.WriteLine("Enter the name of another student or press enter to exit :")
name=textwindow.Read()
我不能测试atm,但我认为你在代码结束时缺少一个EndWhile。(你使用2个循环,但只结束1)
- 在Visual basic中创建这个程序实际上会更容易,因为VB中有更多的信息,而在small basic中有更多的信息。
您确实需要一个endwhile语句,但不要使用第二个while语句——这会导致无限循环。我已经为你修复了代码:
total=0
count=0
TextWindow.WriteLine("What is the students name? :")
name = TextWindow.Read()
While name<>""
TextWindow.Write(" Enter the grades :")
grades = textwindow.ReadNumber()
If grades > 0 Then
total= total+grades
count=count+1
Else
Goto end
EndIf
EndWhile
end:
TextWindow.WriteLine(name+ " average is " +total/count)
TextWindow.WriteLine("Enter the name of another student or press enter to exit :")
name = textwindow.Read()
我已经解决了你的问题!,而不是无限等待分数小于0来显示平均分数。我给它一个计数的条件,如果计数等于3(3项(因为它是关于学校的))。然后,它将停止显示学生在一年(三个学期)的平均成绩。
total=0
count=0
TextWindow.WriteLine("What is the students name? :")
name = TextWindow.Read()
While name<>""
TextWindow.Write(" Enter the grades :")
grades = textwindow.ReadNumber()
If grades > 0 Then
total= total+grades
count=count+1
Else
Goto end
EndIf
If count= 3 then
Goto end
EndIf
EndWhile
end:
TextWindow.WriteLine(name+ " average is " +total/count)
TextWindow.WriteLine("Enter the name of another student or press enter to exit :")
name = textwindow.Read()