Почему оператор IF выполняется сам по себе
x = 5;
Serial.println (x);
if (x == 0);
{
//что-то в этом ЕСЛИ продолжает происходить почему?
//Я слишком глуп?
}
@foow17, 👍0
Обсуждение1 ответ
У вас неправильная точка с запятой.
Разбивая код на конце операторов, вы получаете:
1. x = 5;
2. Serial.println (x);
3. if (x == 0);
4. { // материал }
Точка с запятой после if
завершает if
перед открывающим блоком {
, и этот блок становится совершенно отдельным оператором отделен от if
.
Да, большинство из нас были укушены этим. Я бы хотел, чтобы компиляторы C/C++ помечали эту форму if (condition);
предупреждением, так как это, скорее всего, ошибка и, безусловно, является плохой практикой кодирования, даже если это сделано намеренно. (То же самое и с if (a=b)
. Допустимо, но плохая практика.), @Duncan C
@DuncanC Они могут. GCC имеет флаг -Wempty-body
: «Предупреждать, если в операторах «if», «else» или «do while» встречается пустое тело. Это предупреждение также включается с помощью -Wextra»., @Majenko
Он должен быть включен по умолчанию., @Duncan C
Черт, я бы даже сказал, что это следует пометить как ошибку. Любой, кто намеренно пишет утверждение «если» «только побочный эффект», должен быть расстрелян. :), @Duncan C
Вы можете включить его в настройках Aduino IDE. /home/matt/Arduino/sketch_mar30a/sketch_mar30a.ino:5:14: предупреждение: предложите скобки вокруг пустого тела в операторе 'if' [-Wempty-body]
, @Majenko
- Arduino Uno: avrdude: stk500_recv(): программатор не отвечает
- В чем разница между delay() и delaymicroseconds()
- Программирование Arduino на Паскале?
- Как реализовать Arduino NANO в качестве адаптера RS-232 к USB (или нужен Arduino Mega?) Для связи с 3D принтером
- Выход 3,3 В при установке вывода на высокий уровень
- Может ли Arduino UNO постоянно хранить код?
- Использование библиотеки Arduino fix_fft или arduinoFFT для фильтрации определенного звука?
- Как сгенерировать файлы .a и .so для добавления в проект arduino
оператор
if
должен быть выполнен для оценки условия. если условие истинно, выполняется следующая команда или блок команд. ваша команда послеif
равна;
(пустая команда), @Juraj