Если в качестве входных данных для программы, приведенной ниже, введено «а», а не целое число, выходные данные переходят в цикл без остановки для дополнительного ввода. Почему?
uint inputInt = 1;
while (inputInt > 0) {
write("enter something: ");
try {
readf(" %s", inputInt);
writefln("inputInt is: %s", inputInt);
}
catch (Exception ex) {
writeln("does not compute, try again.");
inputInt = 1;
}
}
Я бы ожидал, что inputInt
получит присвоенный '1' в блоке catch
, а затем снова будет выполнен блок try
. Тем не менее, вывод показывает, что программа не останавливается, чтобы собрать inputInt
снова во второй раз:
enter something: does not compute, try again.
enter something: does not compute, try again.
enter something: does not compute, try again.
enter something: does not compute, try again.
enter something: does not compute, try again.
etc...