Я хотел бы чтобы сделалось два действия и с разными условиями одновременно в for.
Пробовали, что-то не получилось? - покажите код
Ну, “хотел бы”, так и “делал бы”.
Мы то здесь при чём?
@b707 а вообще понял чего он “хотел бы”? По мне, так это бессмысленный набор слов. Нет?
Не так давно тут один деятель хотел
два действия и с разными условиями одновременно
в return
. Этот в for
хочет. Чего им всем надо-то?
Нет. Но в данном случае это не имеет значения. В любом случае это вопрос из разряда “сделайте за меня”. Вот если он придет с кодом и покажет, что пытался сам - тогда и отвечать будем
Rostyslav, мне кажется, Вам нужен двухъядерный процессор.
Я угадал?
И кто тебе запрещает ?
for(int i=0,b=0,c=8;i<5&&b>3&&c==0;i++,b++,c--){
// что то делаем
}
Два действия, с разными условиями, но одновременно. Я ничего не понял, если честно…
Или имелось ввиду что-то такое:
for (uint8_t i = 0; i < n; i++) {
if (условие1) {
// действие1
}
if (условие2) {
// действие2
}
}
Аккуратным надо быть с условиями. Как по мне конкретно этот фор ни разу не крутанётся из за b > 3
А где ТС???
Вот народ - задаст идиотский вопрос, весь форум голову ломает - а ТС может и не придет вовсе.
И что ?
С таким подходом for( ; ; ) вообще не имеет права на жизнь.
Я не утверждал, что этот цикл имеет какую то смысловую нагрузку, а только лишь то , что в таком виде компилятор его вполне себе проглотит.
А я чё? Я ни чё. Просто предупредил последователей тройного фор на возможные грабли. Эта конструкция отлично работает, когда внутри цикла что нибудь делаешь с форными переменными. Иногда приходится прыгать туда сюда при переборе массивов. Максимальные значения форных переменных не дают вывалиться за границы массивов. Особенно если их область определения вынести за for и проанализировать после выхода. Но это очень специфическая задача.
Вышло
Спасибо!!!
Чё вышло-то? Код где? Тут никто толком не понял чего нужно было, а Вы - вышло! Код выкладывайте!
Ну, чо абычна из человеков выходит. Лишнее.
И почему мне сразу вспомнилась поговорка… “Толк из тебя выйдет!!! Бестолочь останется”
Вот код
void setup()
{
for (int i = 2; i < 6; i++)
{
pinMode(i, OUTPUT);
}
for (int m = 8; m < 12; m++)
{
pinMode(m, OUTPUT);
}
}
void loop(){
for (int i=2,m=8;i<6,m<12;i++,m++){
digitalWrite(i, HIGH);
digitalWrite(m, HIGH);
delay(500);
}
delay(500);
for (int i=5,m=11;i>1,m>7;i--,m--){
digitalWrite(i, LOW);
digitalWrite(m, LOW);
delay(500);
}
delay(500);
}
Во-первых, вставьте код как положено , с тегами и номерами строк, чтобы можно было обсуждать.
А во-вторых, раз у вас в обоих группах по четыре пина (а иначе бы и не работало) - нафига вам циклы с двумя условиями?
Все что было нужно - задать первый пин в каждой группе, а дальше просто прокрутить цикл 4 раза.
Вместо вот этой зауми, в которой очень просто ошибится:
пишете так:
byte start_a =2; // первый пин в первой группе
byte start_b =8; // первый пин во второй группе
for (int i =0; i<4; i++){
digitalWrite(start_a + i, HIGH);
digitalWrite(start_b + i, HIGH);
delay(500);
}
именно этот случай
Как, по-Вашему, вот это работает? Можете объяснить толком? Что, в данном случае означает запятая в выражении i<6,m<12
? “И”? “ИЛИ”? Ещё чёнить?