Страницы

Поиск по вопросам

пятница, 13 декабря 2019 г.

Насколько хорошим тоном является добавление условий в счётчик for()?

#cpp #условия #for


Пишу программу, в которой очень бы хотелось использовать подобную конструкцию (пример
кода), но я не уверен, что это хороший стиль программирования, не могли бы вы подсказать,
так ли это?

for(int i = 0; i < size && statement1 && statement2; i++)


Заранее спасибо
    


Ответы

Ответ 1



Это вопрос стиля и личных предпочтений. Я лично считаю, что удобочитаемость кода получается намного выше, если заголовок "поискового" цикла описывает весь потенциальный диапазон, по которому производится поиск, а собственно проверка частных поисковых условий (которые могу вызвать "досрочное" завершение цикла) делается в теле цикла. Например, найти символ 'a' в строке s unsigned i; for (i = 0; s[i] != '\0'; ++i) if (s[i] == 'a') break; а не unsigned i; for (i = 0; s[i] != '\0' && s[i] != 'a'; ++i) ; То есть заголовок цикла описывает где мы ищем, а тело цикла описывает что мы ищем. Разумеется, разграничение между этими понятиями не всегда является четким и, еще раз, это вопрос стиля и личных предпочтений.

Ответ 2



На практике очень часто встречаемая конструкция. Однако, идеоматически цикл for используется для известного перед началом цикла числа повторов, а для цикла, в котором условие завершения становится истинным при вычислениях (в т.ч. проверке значения элементов массива) предназначены циклы while и do { ... } while(); Если statement1 и statement2 из вашего вопроса не меняются внутри цикла, то лучше вынести их в if перед циклом for. Иначе, лучше написать цикл while (впрочем, это дело вкуса, реально никто за такой for ругать не будет).

Комментариев нет:

Отправить комментарий