未赋值的局部变量问题
大家好,小弟想请教一个问题:小弟刚接触C#,现辛苦做习题中,有一道题,输入两个整数,求最大公约数和最小公倍数,小弟代码如下:
static void Main(string[] args)
{
int axin1, axin2, t, i, j, k1, k2;
Console.WriteLine("请输入第一个数,以回车键结束\n");
axin1 = int.Parse(Console.ReadLine());
Console.WriteLine("请输入第二个数,以回车键结束\n");
axin2 = int.Parse(Console.ReadLine());
if (axin1 > axin2)
{
t = axin1;
axin1 = axin2;
axin2 = t;
}
for (i = 1; i <= axin1; i++)
{
k1 = axin1 % i;
k2 = axin2 % i;
if ((k1 == 0) && (k2 == 0))
{
j = i;
}
else
{
continue;
}
}
t = axin1 * axin2 / j;
Console.Write("这两个数的最大公约数是{0}\n", j);
Console.WriteLine("这两个数的最小公倍数是{0}\n", t);
Console.ReadKey();
}
以上程序在编译时,提示36行(红色的那行)使用了未赋值的局部变量j的错误,后来我在循环前面一行加了“j=0”之后,就可以顺利通过,但是搞不懂的是:
我定义了其他的变量也未赋初始值,为什么偏偏提示j这个变量呢?我自己分析了一下,是不是因为我程序中“t=axin1*axin2/j”这句的原因?因为j是除数,就是说j不能为空,也不能为0,所以必须赋初始值?