当前位置:编程学习 > C#/ASP.NET >>

关于用if嵌套实现3数大小比较时的诡异问题...

在用if嵌套语句实现3个数大小排序的时候发现了一个诡异的问题:

            int a, b, c;
            int m1;//=  new int();
            int m2;// = new int();
            int m3= new int();
            
            Console.WriteLine("请输入3个数:");
            a = int.Parse(Console.ReadLine());
            b = int.Parse(Console.ReadLine());
            c = int.Parse(Console.ReadLine());

            if (a >= b)
            
                if (b >= c)
                { m1 = a;m2 = b; m3 = c;}
                else  if (a >= c)
                         { m1 = a;m2 = c; m2 = b;}
                      else
                         { m1 = c; m2 = a; m3 = b;}
            else 
            
                if (b <= c)
                { m1 = c; m2 = b; m3 = a; }
                else if (a >= c)
                       { m1 = b; m2 = a; m3 = c; }
                      else
                { m1 = b; m2 = c; m3 = a; }


            Console.WriteLine("输入的三个数由大到小顺序为:{0},{1},{2}", m1, m2, m3);
           
            Console.ReadLine();


直接用int m1,m2,m3;时,报错为使用了未赋值的局部变量m3;

改为int m1,m2,m3=0时,正常运行;

改为int m1;=  new int();
   int m2; = new int();
    int m3= new int();
时,运行正常;

改为int m1;//=  new int();
    int m2;// = new int();
    int m3= new int();
时,运行也正常;

但是改为int m1;//=  new int();
       int m2;//= new int();
       int m3;//==new int();
时又报错,显示使用了未赋值的局部变量m3。


哪位大侠能帮我解答一下这个现象的原因啊?谢谢...

--------------------编程问答-------------------- 人才啊,三个数比较大小都能写这么长。 --------------------编程问答--------------------             int m1;//=  new int(); 
            int m2;// = new int(); 
            int m3= new int(); 

不需要 new int() --------------------编程问答--------------------             int m1=0;//=  new int(); 
            int m2=0;// = new int(); 
            int m3=0;//= new int();

int要赋值初始 --------------------编程问答-------------------- 汗...是我代码中有个写错了...应该是m3=b,写成m2=b了...改过来不赋初值也没问题了...
另外我这是准备给学生讲if嵌套用的...
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,