#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 ругать не будет).
Комментариев нет:
Отправить комментарий