问答详情
源自:5-8 编程练习

foreach的错位

static void Main(string[] args)

        {

            int[] num = new int[] { 3, 34, 43, 2, 11, 19, 30, 55, 20 };

            bool hasit = false;

            for (int i = 0; i < num.Length; ++i)

            {

                if (num[i] % 7 == 0)

                {

                    hasit = true;

                    break;

                }

            }

            if (hasit)

            {

                Console.Write("有七的倍数");

            }

            else

            {

                Console.Write("没有七的倍数");

            }

        }

    }

如图代码,把for语句换成foreach,   if (num[i] % 7 == 0)这一句就会报错,请问为什么呀

提问者:慕用00838 2020-02-15 20:45

个回答

  • 蜗牛大叔
    2020-11-15 09:05:11

    换 foreach,要把break调到if外面,即:

    foreach(int i in num)

                {

                    if (num[i] % 7 == 0)

                    {

                        hasit = true;

                        

                    }

                     break;  

                }


  • 慕函数0139262
    2020-02-17 18:56:31

    foreach 遍历所有元素,不能用索引了就,直接用定义的变量

    foreach (int i in num) {
        if (i % 7 == 0) {
        }
    }