例029:计算阶乘和5!+4!+3!+2!+1!

建立一个EXE工程,输入代码:

Sub Form1_Shown(hWndForm As hWnd, UserData As Integer)
  Dim sum As Integer 
   For i As Integer = 5 To 1 Step -1
         sum=sum+Multiply(i)
      Next
      Print sum
End Sub
Function Multiply(ByRef n As Integer) As Integer  
   Dim temp As Integer 
   temp=1
   Do While n > 0
      temp = temp * n
      n=n-1
   Loop
   Multiply=temp
End Function
  1. 运行程序,在控制台上输出120,而正确的结果是153,这是因为参数传递使用了引用传递方式ByRef,导致传进去的n=5直接被改变成了1,所以只求出了5!=120。
  2. 改正的方法有两种,一是将调用语句改为 sum=sum+Multiply((i+0)),因为表达式是值传递的,二是将ByRef改成ByVal。

你可能感兴趣的:(Visual,Free,Basic例解教程,开发语言)