Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 我想让我的程序执行,直到我手动退出它_Vb.net_Loops_Iteration - Fatal编程技术网

Vb.net 我想让我的程序执行,直到我手动退出它

Vb.net 我想让我的程序执行,直到我手动退出它,vb.net,loops,iteration,Vb.net,Loops,Iteration,我用vb创建了一个控制台程序 . Net来计算输入的数字阶乘,但它在我退出之前只执行一次,如何让程序运行直到用户想要退出? 这是我使用的代码 模阶乘   Dim阶乘=1,i,num为整数 副标题() Write(“输入一个数字以查找它的阶乘:”) num=Console.ReadLine()   阶乘=1 对于i=1到num 阶乘=阶乘*i 下一个   WriteLine({0}的阶乘是{1}),num,阶乘)             端接头   端模块 控制台。ReadKey()将允许您让程序

我用vb创建了一个控制台程序 . Net来计算输入的数字阶乘,但它在我退出之前只执行一次,如何让程序运行直到用户想要退出? 这是我使用的代码

模阶乘   Dim阶乘=1,i,num为整数 副标题() Write(“输入一个数字以查找它的阶乘:”) num=Console.ReadLine()   阶乘=1 对于i=1到num 阶乘=阶乘*i 下一个   WriteLine({0}的阶乘是{1}),num,阶乘)             端接头   端模块
控制台。ReadKey()
将允许您让程序等待按下任何键

如果您需要您的程序计算越来越多的阶乘,您应该将所有代码封装到无限循环中,如下所示:

Do
    Something
Loop

要处理来自用户的多个输入,需要将代码放入循环中。您需要一种方式让用户指示该完成了(例如,键入“退出”而不是数字)

在将用户输入的字符串转换为整数之前,还应确保该字符串有效

最后,您应该考虑到阶乘非常大的可能性。对阶乘使用Long而不是整数会有所帮助,但阶乘可能仍然太大,因此您可以使用Try/Catch检查溢出并发送错误消息。如果您想处理任意大小的数字,您可以进行研究

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