Почему выход с вложенного цикла начинается с 8 и 18? - PullRequest
0 голосов
/ 30 апреля 2018

Я не понимаю, почему этот цикл начинается в 8 и 18, когда я вывожу его, но когда я пытаюсь "i <10 и j <10", он начинается в 2 и 2. Может кто-нибудь объяснить мне это? </p>

class Program
{
    static void Main(string[] args)
    {
        for (int i = 2; i < 100; i++)
        {
            for (int j = 2; j < 100; j++)
            {
                Console.WriteLine("i = {0} and j = {1}", i, j);
            }                 
        }
    }
}

Скриншот моей проблемы:

Ответы [ 2 ]

0 голосов
/ 30 апреля 2018

Это потому, что вы превысили количество строк, которые ваша консоль настроена на одновременное отображение.

Свойство называется Console.BufferHeight.

Попробуйте написать Console.WriteLine(Console.BufferHeight);, чтобы увидеть количество строк, которые ваша консоль должна отображать одновременно.

Вы можете изменить его, просто написав настройку на желаемое значение, например, Console.BufferHeight = 20000; или изменение настроек консоли путем доступа к свойствам способом, который разработал @Greg.

0 голосов
/ 30 апреля 2018

Вы уверены, что он начинается не с i = 2 и j = 2? Вы выполняете этот цикл так много раз, что вывод вашей консоли может не показать, что он начинается с 2,2, даже если это так. Попробуйте установить точку останова во втором цикле for, я думаю, вы увидите, что она начинается с 2, 2. Это потому, что размер буфера слишком мал.

Вот что вы можете сделать:

  • Запустите ваш проект.
  • Щелкните правой кнопкой мыши строку заголовка-> Свойства-> Макет.
  • Установите свой рост на что-то действительно большое.

Вы можете обратиться к этому вопросу , чтобы узнать больше.

...