标题:未赋值的局部变量问题
取消只看楼主
LennyMogwai
Rank: 2
等 级:论坛游民
帖 子:20
专家分:15
注 册:2011-7-24
结帖率:100%
已结贴  问题点数:20 回复次数:1 
未赋值的局部变量问题
大家好,小弟想请教一个问题:
小弟刚接触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,所以必须赋初始值?
搜索更多相关主题的帖子: 最小公倍数 公约数 
2011-09-08 23:12
LennyMogwai
Rank: 2
等 级:论坛游民
帖 子:20
专家分:15
注 册:2011-7-24
得分:0 
明白了,多谢2楼……

其实我开始定义的其他变量并不是定义,只是声明对吧,要赋初始值才算作定义的……
2011-09-09 07:04



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-349523-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.044459 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved