关于用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#