Вопрос по условию
- Войдите на сайт для отправки комментариев
Пт, 25/04/2014 - 21:58
доброго времени суток.
подскажите, пожалуйста, что я не так делаю?
задаю значения a и b = 1. после первого поворота меняю значение а на ноль, но условие всё равно продолжает выполняться. почему?
#include <Servo.h>
Servo myservo; // create servo object to control a servo
// a maximum of eight servo objects can be created
int pos = 0; // variable to store the servo position
boolean a=1, b=1;
void setup()
{
Serial.begin(9600);
myservo.attach(3); // attaches the servo on pin 3 to the servo object
}
void loop()
{
Serial.print("a = ");
Serial.println(a);
Serial.print("b = ");
Serial.println(b);
if ((a=1) && (b=1)) {
for(pos = 0; pos < 180; pos += 1) // goes from 0 degrees to 180 degrees
{
a=0; // in steps of 1 degree
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
}
}
потому что сравнение == а не =
вы в 21 строке присвоили а 1 и b 1 поом сделали операцию и между а и б.
1 и 1 = 1
следовательно иф проходит всегда
спасибо огромное!! полчаса искала ошибку, не могла найти :)
А потому что надо правильно писать операторы сравнения
http://arduino.ru/Reference/If
А чтобы вылавливать ошибки присвоения в if рекомендуют в условии писать не
(a==1), а(1==a)да да, я уже поняла) невнимательность моя. спасибо.
А потому что надо правильно писать операторы сравнения
http://arduino.ru/Reference/If
А чтобы вылавливать ошибки присвоения в if рекомендуют в условии писать не
(a==1), а(1==a)это не читать надо, а писать больше и практиковаться, чтобы руку набить
верно)
я читала про if и раньше, но рука набита на паскаль. вот и ошибку найти оказалось проблематично. да и раньше не поподалась на этом, вроде)