Помогите с экспериментом
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Помогите плиз «подручными средствами» понять, как сделать так, чтобы при неверном введении значения, попыток на повторный переввод было 5.
Или покажите где косяк?
Приложение закрывается после первого неверного ввода.
Я делал много вариантов, в некоторых он не выдавал ошибки, а условие просто динамил, и не заканчивал цикл с goto вообще.
Диагноз:
(1) Использование goto без крайней необходимости не приветствуется.
(2) Автор запутался в собственной логике.
(3) Односимвольные login/password — нонсенс.
Комментарий:
В последнем
else
к операторуwhile
переменнаяi
всегда будет иметь значение 2, поскольку при входе в блок переменнаяi
инициализируется значением 1, инкрементируется, а затем, при выходе из блока — уничтожается. Кроме того, я бы ещё мог понятьif (i <= 5) { cout << ...; goto xy; }
, но почему написанwhile
— я не понимаю.Почему-то очень многие не любят использовать оператор
switch
. Согласен, что в С++ этот оператор существует в несколько кастрированном виде. И тем не менее, лучше использовать его, чем сложную конструкцию изif
'ов.Лечение:
(1-2) Выправляем логику, убираем
goto
и используем операторswitch
вместоif
'ов.(3) Используем строки и соответствующую функцию ввода.