Полагаю, вы хотели позволить пользователю нажать клавишу ввода, прежде чем цикл продолжит свою следующую итерацию, верно?Вот почему вы вызвали Console.Read()
в конце цикла.
Однако Console.Read
читает только 1 символ, но когда вы нажимаете ввод, на самом деле вводятся 2 символа (по крайней мере, в Windows),и они \r
и \n
.Console.Read
читает \r
, оставляя \n
непрочитанным.
В следующей итерации цикла первый вызов Console.ReadLine
читает \n
, который является пустой строкой, поэтомувозвращает пустую строку.Обратите внимание, что пользователь не дождался ввода чего-либо, потому что видит, что некоторые символы еще не прочитаны.
Чтобы исправить это, вы можете вызвать ReadKey
вместо Read
.
Console.ReadKey();