none
关于变量赋值造成的错误 RRS feed

  • 问题

  • 下面这段代码是一个简单的计算数学累加的过程,比如输入一个数n,则计算出1+(1+2)+(1+2+3)+…+(1+2+3+4+…+n)的结果.

        Sub Main()
          Console.Write("Enter a No.: ")
          Dim n As Integer = Console.ReadLine()
          Dim b As Integer
          Dim c As Integer
          b = 0
          For d As Integer = 1 To n
             c = 0
             For e As Integer = 1 To d
                c = c + e
             Next
             b = b + c
          Next
          Console.WriteLine(b)
        End Sub

    但是如果把这段代码的第六行和第八行删除掉的话,计算的结果与正确结果有很大的出入,为什么会这样呢?我记得在变量声明后如果没有赋值的话就调用,系统会给这个变量赋默认值,Integer数据类型的默认值就是0,那么赋值与不赋值应该没什么区别啊?为什么在这里一定要显性地给变量赋默认值啊,我怎么也想不通!请高手们详细解释一下,非常感谢!!!

     

    2008年11月12日 11:14

答案

全部回复