新人!求帮解答个九九乘法表的解析。
请帮忙写下每步的注释都是完成什么 是什么意思,谢谢
declare @a int,@b int,@c varchar(100)set @a=1while(@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
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
[解决办法]
--定义变量declare @a int,@b int,@c varchar(100)--赋a初始值set @a=1--开始循环,条件:a小于等于9while(@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