declare @n int,@sum int
set @n=1
set @sum=0
while @n<=10
begin
set @sum=@sum+@n
set @n=@n+1
end
print @sum怎么会是1-10之间的和?

解决方案 »

  1.   

    declare @n int,@sum int
    set @n=1
    set @sum=0
    while @n<=10
    begin
    set @sum=@sum+@n
    PRINT @sum
    set @n=@n+1
    end
    这样看你就会明白,你的初值为1,终值为10 当然应该是那样咯~~~~
      

  2.   

    循环十次 @n 从1加到10,而@sum第一次循环是:@sum=0+@n(此时@n未作加一,所以此时值还未初始值1)=1;第二次:@sum=1+2(@n+1 此时循环执行到@n=@n+1 所以此时@n值为2)=3~~~~~依次类推,自己好好揣摩揣摩吧!!
      

  3.   

    declare @n int,@sum int
    set @n=1
    set @sum=0循环第一次@n=1
    while @n<=10  判断是否要循环
    begin
    set @sum=@sum+@n --@sum=0 @n=1 结果@sum=1
    set @n=@n+1 --设置@n=1+1=2
    end
    循环第二次@n=2
    while @n<=10   判断是否要循环
    begin
    set @sum=@sum+@n --@sum=1 @n=2 结果@sum=3
    set @n=@n+1 --设置@n=2+1=3
    end
    循环第三次@n=3
    while @n<=10   判断是否要循环
    begin
    set @sum=@sum+@n --@sum=3 @n=3 结果@sum=6
    set @n=@n+1 --设置@n=3+1=4
    end
    循环第4次@n=4
    while @n<=10   判断是否要循环
    begin
    set @sum=@sum+@n --@sum=6 @n=4 结果@sum=10
    set @n=@n+1 --设置@n=4+1=5
    end
    循环第5次@n=5
    while @n<=10   判断是否要循环
    begin
    set @sum=@sum+@n --@sum=10 @n=5 结果@sum=15
    set @n=@n+1 --设置@n=5+1=6
    end
    循环第6次@n=6
    while @n<=10   判断是否要循环
    begin
    set @sum=@sum+@n --@sum=15 @n=6 结果@sum=21
    set @n=@n+1 --设置@n=6+1=7
    end
    循环第7次@n=7
    while @n<=10   判断是否要循环
    begin
    set @sum=@sum+@n --@sum=21 @n=7 结果@sum=28
    set @n=@n+1 --设置@n=7+1=8
    end
    循环第8次@n=8
    while @n<=10   判断是否要循环
    begin
    set @sum=@sum+@n --@sum=28 @n=8 结果@sum=36
    set @n=@n+1 --设置@n=8+1=9
    end
    循环第9次@n=9
    while @n<=10   判断是否要循环
    begin
    set @sum=@sum+@n --@sum=36 @n=9 结果@sum=45
    set @n=@n+1 --设置@n=9+1=10
    end
    循环第10次@n=10
    while @n<=10   判断是否要循环
    begin
    set @sum=@sum+@n --@sum=45 @n=10 结果@sum=55
    set @n=@n+1 --设置@n=10+1=11
    end
    循环第11次@n=11
    while @n<=10   判断是否要循环 ,此时条件不符,结束循环体,执行到下一句
    begin
    set @sum=@sum+@n --@sum=45 @n=10 结果@sum=55
    set @n=@n+1 --设置@n=10+1=11
    endprint @sum 打印55
      

  4.   

    declare @n int,@sum int
    set @n=1
    set @sum=0循环第一次@n=1
    while @n<=10  判断是否要循环
    begin
    set @sum=@sum+@n --@sum=0 @n=1 结果@sum=1
    set @n=@n+1 --设置@n=1+1=2
    end
    循环第二次@n=2
    while @n<=10   判断是否要循环
    begin
    set @sum=@sum+@n --@sum=1 @n=2 结果@sum=3
    set @n=@n+1 --设置@n=2+1=3
    end
    循环第三次@n=3
    while @n<=10   判断是否要循环
    begin
    set @sum=@sum+@n --@sum=3 @n=3 结果@sum=6
    set @n=@n+1 --设置@n=3+1=4
    end
    循环第4次@n=4
    while @n<=10   判断是否要循环
    begin
    set @sum=@sum+@n --@sum=6 @n=4 结果@sum=10
    set @n=@n+1 --设置@n=4+1=5
    end
    循环第5次@n=5
    while @n<=10   判断是否要循环
    begin
    set @sum=@sum+@n --@sum=10 @n=5 结果@sum=15
    set @n=@n+1 --设置@n=5+1=6
    end
    循环第6次@n=6
    while @n<=10   判断是否要循环
    begin
    set @sum=@sum+@n --@sum=15 @n=6 结果@sum=21
    set @n=@n+1 --设置@n=6+1=7
    end
    循环第7次@n=7
    while @n<=10   判断是否要循环
    begin
    set @sum=@sum+@n --@sum=21 @n=7 结果@sum=28
    set @n=@n+1 --设置@n=7+1=8
    end
    循环第8次@n=8
    while @n<=10   判断是否要循环
    begin
    set @sum=@sum+@n --@sum=28 @n=8 结果@sum=36
    set @n=@n+1 --设置@n=8+1=9
    end
    循环第9次@n=9
    while @n<=10   判断是否要循环
    begin
    set @sum=@sum+@n --@sum=36 @n=9 结果@sum=45
    set @n=@n+1 --设置@n=9+1=10
    end
    循环第10次@n=10
    while @n<=10   判断是否要循环
    begin
    set @sum=@sum+@n --@sum=45 @n=10 结果@sum=55
    set @n=@n+1 --设置@n=10+1=11
    end
    循环第11次@n=11
    while @n<=10   判断是否要循环 ,此时条件不符,结束循环体,执行到下一句
    begin
    set @sum=@sum+@n --@sum=45 @n=10 结果@sum=55
    set @n=@n+1 --设置@n=10+1=11
    endprint @sum 打印55
      

  5.   

    --声明两个变量@n和@sum
    declare @n int,@sum int
    --分别给变量@n和@sum赋值
    set @n=1
    set @sum=0
    --循环@n<10
    while @n<=10
    begin
    --做一下求和
    set @sum=@sum+@n
    set @n=@n+1
    end
    --打印出@sum的值
    print @sum
      

  6.   

    还好楼主的WHILE后面不是@n<=1000
    不然这个页面会超长……