Как понять запись
- Войдите на сайт для отправки комментариев
Чт, 17/11/2011 - 18:04
Как понимать следующую строчку:
lightchase=lightchase+1-4*(lightchase>3);
Как понимать следующую строчку:
lightchase=lightchase+1-4*(lightchase>3);
Наверное - как оператор языка C.
Непонятно это значение:
4*(lightchase>3)
неявное преобразование типов:
logical в integer (<=3 - "0", >3 - "1" вроде бы, но лучше проверить тестовым прогоном с выводом на терминал)
если эта "строка" стоит в цикле, то есть подозрение, что переменная будет пробегать значения 1-2-3-4-1-2-3-4...
Огромное спасибо.
Вот полная строка:
if (millis()-time>199) // Check if 200mS has elapsed--Проверка, 200mS прошло?
{
time=millis();
lightchase=lightchase+1-4*(lightchase>3); // counts from 1-4 repeatedly to chase LEDs
}
(lightchase+1) - (4*(на один если lightchase больше трех))
где один - эквивалент "правда"
то есть в любом случае счетчик увеличивается на один и если lightchase больше трех - отнимается 4