日期:2014-05-17  浏览次数:20389 次

新人!求帮解答个九九乘法表的解析。
请帮忙写下每步的注释都是完成什么 是什么意思,谢谢
SQL code
declare @a int,@b int,@c varchar(100)
set @a=1
while(@a<=9)
  begin
     select @b=1,@c=''
   while(@b<=@a)
     begin
         select @c=@c+cast(@b as varchar)+'*'+cast(@a as varchar)+'='+cast(@a*@b as varchar)+' '
         set @b=@b+1
     end
         print @c+char(10)
         set @a=@a+1
  end


------解决方案--------------------
SQL code

declare @a int,@b int,@c varchar(100)
--定义乘法表的两个乘数,@c是将乘法表的每行按照字符串的格式输出!
set @a=1
--定义最外边乘数的初始值,就是乘法表中每行右边的数。
while(@a<=9)
--循环体条件
  begin
     select @b=1,@c=''
--定义里层乘数初始值,结果字符串变量@c赋值为空,否则是NULL,输出也会是NULL。
   while(@b<=@a)
--乘法表格式的一个循环条件,按左下三角格式输出。
     begin
         select @c=@c+cast(@b as varchar)+'*'+cast(@a as varchar)+'='+cast(@a*@b as varchar)+' '
--给输出字符串赋值,类似  1*1=1 具体以字符串格式输出。
         set @b=@b+1  --里层循环控制条件。
     end
         print @c+char(10) --输出字符串加换行符打印。
         set @a=@a+1  --外层循环控制条件。
  end

------解决方案--------------------
SQL code

--定义变量
declare @a int,@b int,@c varchar(100)
--赋a初始值
set @a=1
--开始循环,条件:a小于等于9
while(@a<=9)
  begin
--赋初始值
     select @b=1,@c=''
--开始循环,条件:b小于等于a
   while(@b<=@a)
     begin
--执行乘法运算
         select @c=@c+cast(@b as varchar)+'*'+cast(@a as varchar)+'='+cast(@a*@b as varchar)+' '
--b加1
         set @b=@b+1
     end
--打印结果
         print @c+char(10)
--a加1
         set @a=@a+1
  end