日期:2014-05-18  浏览次数:20881 次

虚心请教一个数组的问题,求解。
C# code

int[] xx = new int[9] { 11, 25, 3, 47, 6, 17, 38, 9, 10 };
            Console.WriteLine("请输入要查询的数:");
            int cx = int.Parse(Console.ReadLine());
            for (int i = 0; i < xx.Length; i++)
            {
                if (xx[i] == cx)
                {
                    Console.WriteLine("{0}是数组中的第{1}元素", cx, i + 1);
                }
                else if (xx[i] == xx.Length + 1)
                {
                    Console.WriteLine("找不到");
                }
                else
                { }
            }           
            Console.ReadLine();



是控制台里面做的,比如输入“10” 只显示“("{0}是数组中的第{1}元素", cx, i + 1);”
而不显示“找不到”


如果随便输了个数组中没有的 那么就只出现1边“找不到”


我现在做的效果是随便输个没有的数 只出现一次 “找不到”
但是输了有的值出现了正确结果后还出现了一边 找不到。
求解。

------解决方案--------------------
找到值后 直接break跳出循环即可:

C# code

int[] xx = new int[9] { 11, 25, 3, 47, 6, 17, 38, 9, 10 };
            Console.WriteLine("请输入要查询的数:");
            int cx = int.Parse(Console.ReadLine());
            for (int i = 0; i < xx.Length; i++)
            {
                if (xx[i] == cx)
                {
                    Console.WriteLine("{0}是数组中的第{1}元素", cx, i + 1);
                    break;  //注意此处
                }
                else if (xx[i] == xx.Length + 1)
                {
                    Console.WriteLine("找不到");
                }
                else
                { }
            }           
            Console.ReadLine();