我使用vb创建了一个控制台程序 。 Net计算输入的数字因子,但它只在我退出之前执行一次,如何让程序运行直到用户想要退出? 这是我使用的代码
Module factorial
Dim factorial = 1, i, num As Integer
Sub Main()
Console.Write("Enter a number to find a factorial of it : ")
num = Console.ReadLine()
factorial = 1
For i = 1 To num
factorial = factorial * i
Next
Console.WriteLine("Factorial of {0} is {1}", num, factorial)
End Sub
End Module
答案 0 :(得分:1)
Console.ReadKey()
将允许您让程序等待按任意键。
如果你需要你的程序计算越来越多的阶乘,你应该将所有代码包装成无限循环:
Do
Something
Loop
答案 1 :(得分:1)
要处理来自用户的多个输入,您需要将代码放在循环中。您需要一种方式让用户指出它的完成时间(例如输入"退出"而不是数字。
在将用户输入的字符串转换为Integer之前,您还应确保该字符串有效。您可以使用Integer.TryParse。
来完成此操作最后,你应该考虑阶乘是非常大的可能性。对于阶乘使用Long而不是Integer会有所帮助,但是阶乘可能仍然太大,因此您可以使用Try / Catch检查溢出并发送错误消息。如果您想处理任何大小的数字,可以研究BigInteger。
Module factorial
Sub Main()
Do
Console.Write("Enter a number to find its factorial, or Quit to end the program:")
Dim inString As String = Console.ReadLine
If inString.ToUpper = "QUIT" Then Exit Sub
Dim num As Integer
If Integer.TryParse(inString, num) Then
Dim factorial As Long = 1
Try
For i As Integer = 2 To num
factorial *= i
Next
Console.WriteLine("Factorial of {0} is {1}", num, factorial)
Catch ex As OverflowException
Console.WriteLine("Factorial of {0} is too large", num)
End Try
End If
Loop
End Sub
End Module