为了账号安全,请及时绑定邮箱和手机立即绑定

为啥用foreach 会导致数组溢出呢,for就不会。求教

namespace projGetMaxScore

{

    class Program

    {

        static void Main(string[] args)

        {

            int[] sorce = new int[] { 1, 2, 3, 4, 5, 6, 7, 8 };

            string[] name = new string[] { "89", "90", "98", "56", "60", "91", "93", "85" };

            int Topsorce = 0;

            string Name = "";

           // foreach (int x in sorce)

            //{

             //   if (sorce[x] >= Topsorce)

             //       Topsorce = sorce[x];

             //   Name = name[x];

           // }

           for(int i=0;i<sorce.GetLongLength(0);i++)

            {

                if (sorce[i] >= Topsorce)

                          Topsorce = sorce[i];

                     Name = name[i]; }

                    Console.Write("分数最高的是{0},分数是{1}", Name, Topsorce);

        }

    }

}


正在回答

2 回答

x指的是sorce 数组的1~8吧  后面的sorce[8]的时候角标越界了

0 回复 有任何疑惑可以回复我~

foreach中的x是迭代变量名,不能对其进行操作,所以for就不会。例如foreach中写成x++就错了

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为啥用foreach 会导致数组溢出呢,for就不会。求教

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信