Почему постинкремент в C# все еще выполняется для этого неравенства - PullRequest
0 голосов
/ 06 августа 2020

в следующем коде «while»:

int digit = 0;
        while(++digit < 10) 
            Console.WriteLine(digit);

Это выводит 1,2,3,4,5,6,7,8,9 Это имеет смысл для меня, так как он должен остановиться на 10, так как 10 <10 ложно. </p>

Однако, когда мы переключаемся с предварительного приращения на постинкремент для di git:

int digit = 0;
        while(digit++ < 10) 
            Console.WriteLine(digit);

Затем он выводит 1, 2,3,4,5,6,7,8,9,10

Я не понимаю, почему он выполняет Console.WriteLine и выводит 10 в этом случае, поскольку 10 <10 ложно. </p>

Кто-нибудь может объяснить?

Спасибо

1 Ответ

0 голосов
/ 06 августа 2020

Во втором блоке кода, когда digit равно 9, код digit++ оценивается и возвращает 9, но устанавливает значение digit на 10. Затем на Console.WriteLine(digit); он просто печатает 10.

...