Запись счетчика цикла в переменную
- Войдите на сайт для отправки комментариев
Пнд, 10/03/2014 - 19:43
Добрый день!
подскажите, пожалуйста, можно в переменную записать количество выполненных циклов, как пример:
for(b=0;b<10;b++){ // analogWrite(3,80); analogWrite(9,78); delay(200); z=(analogRead(6)); if (z<100){ STOP(1000); analogWrite(3,0); analogWrite(9,78); delay(650); // STOP(500); analogWrite(3,80); analogWrite(9,78); delay(500); n=b;
или подскажите как лучше.
Спасибо!
имеется ввиду - в конце цикла в некую переменную "n" записать количество выполненных циклов "b", (в данном случае)
После цикла - в одном контексте с считаеимым выполнением. С иницилизацией вне контекста.
Смысл в том чтобы увеличивать переменную всякий раз после выполнения цикла.
А точнее вам скажут есл предоставите код полностью.
Спасибо за комментарий, вопрос немного в другом.
Да, цикл повторяется если условие в скобках выполняется "b<10" и с каждым циклом идет приращение этого "b". Цикл повторился несколько раз, например - 5 раз. Затем наступило условие на основании которого мы цикл прерываем, но нужно запомнить, сколько раз цикл повторился. Вопрос: корректно будет написать, что некая переменная "n" теперь равна счетчику цикла "b"?
Вопрос: корректно будет написать, что некая переменная "n" теперь равна счетчику цикла "b"?
да.
или подскажите как лучше.
Вы не поверите, но лучше всего так:
Хотя, конечно, можно и посложней что-нибудь придумать.
Спасибо! но, честное слово, вопрос в другом. Задание условия исполнения цикла уже освоил.
Эта переменная, которая объявлена не в setup, а в теле программы, в loop - будет доступна во всем теле программы? Если присвоение переменной "n" производится в одном цикле "for" будет доступна в другом цикле "for"?
Никак не идет отладка программы, пытаюсь понять где могут быть глюки?
loop повторяется - повторное инициирование переменной сбрасывает ее.
Правильнее вне loop и setup обьявлять глобальные переменные.
почитайте про Scope - область видимости переменных.
Спасибо! но, честное слово, вопрос в другом. Задание условия исполнения цикла уже освоил.
А причем тут "задание условия"? Вы спрашивали " в переменную записать количество выполненных циклов".
Ответ: ничего для этого делать не нужно. Этим занимается сам оператор for. После того как цикл завершится (не важно, по условию выхода, или вы где-то внутри него сделали break) в переменной b будет значение "количество выполненных циклов". Полностью выполненых, тот кого мы преравли по break-e - в нее не "засчитается".
В переменную записали количество выполненных циклов - за вас.
Что дальше делать с этой переменой: сохранить в другую переменную, вернуть как результат функции - уже ваше дело. Это такая же переменная как и любая другая. Никакой "особости", из-за того что ее использовали в качестве счетчика функции у нее нет.
Как сохранить переменную между вызовами функций (любую переменную), где она будет видна, время ее жизни и т.п. зависит от того где и как вы ее объявили. Внутри функции или снаружи. С ключевым словом static или без онного. Но, как правильно заметил NeiroN это уже другая история. Называется "область видимости переменных". И эта история к циклам - не имеет никакого отношения.
Чтобы глобальный счетчик не обнулялся.. Не обнуляйте его и используйте цикл на while.
Пока условие исполняется счетчик внутри while прирастает, иначе проскакивает без приращения.
то, что дано в первом посте вообще программой считать нельзя , хотя бы из-за отсутствия закрывающих фигурных скобок.
если хотите помощи дайте то, что пытаетесь отлаживать целиком...
Ребята! Спасибо вам всем большое! Помощь оказали вы мне бесценную! Все что рекомендовали - попробовал, результаты скину может быть позже! Еще раз спасибо!