short i = 0;
           
            int size = 100000;
            string myString = "HelloWorld";
            for (i = 0; i < size; i++)
            {
                if (i % 10000 == 0) Console.WriteLine(myString);
            }
            Console.ReadLine();这样的一个循环他为什么是死循环呢?我怎么觉得它应该只输出是个hello world啊?

解决方案 »

  1.   

    short i = 0;
        
      int size = 10000;
      string myString = "HelloWorld";
      for (i = 1; i < size; i++)
      {
      if (i % 10000 == 0) Console.WriteLine(myString);
      }
      Console.ReadLine();0%10000=0
    10000
    20000
    。这些%10000也是0。多输出几次hello world而已.你循环10W次了而已
      

  2.   


    if (i % 10000 == 0)//满足条件的只有一个,0%10000=0
      

  3.   

    注意i定义的是short,最大只有65536,i永远小于100000.所以死循环
    将i定义为int就没事了