@popmus

Как программным методом удалить одну из итераций цикла for?

Допустим есть for(int i = 0; i < 5; ++i) {}
Я предлагаю вводить пять новых слов. Человек на 3ий раз вводит слово ,которое уже есть в векторе. Я через continue продолжаю с ним работать, но цикл мы уже потеряли,а как сделать ,чтобы в таком случаи этот цикл не засчитывался или изменился уже на i <6;. PS: Это чистый пример для возможного понимания.
  • Вопрос задан
  • 275 просмотров
Решения вопроса 1
@rPman
в твоем случае просто - делать i--, само собой, если условие пропуска содержит учет номера шага, то для этого завести дополнительный счетчик настоящих шагов

Если что под твою задачу лучше делать цикл while и считать количество 'новых слов' а не количество шагов, зачем тебе эти шаги
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
Adamos
@Adamos
Решается проблема XY.
Тут в принципе не имеет смысла for, а нужен while(vector.size() < 5)
Шаманство с индексом цикла - плохая практика, она аукнется в новых стандартах, например.
Ответ написан
Комментировать
mindtester
@mindtester Куратор тега C#
http://iczin.su/hexagram_48
в целом может полезно все это для понимания. но вообразим крайность - бесконечный ввод одного слова.. (вдруг у вас программный источник? ))
итог - бесконечный цикл ))
возможно это уже следующий уровень понимания, но рекомендую к осмыслению )))
Ответ написан
Комментировать
vabka
@vabka Куратор тега C#
Токсичный шарпист
Можно добавить ещё 1 вложенный цикл, чтобы человек повторно вводил слово, пока не введёт уникальное.
Это будет самый оптимальный вариант, как мне кажется.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы