Проблема с оператором goto

Balazaka
Offline
Зарегистрирован: 15.01.2016
Знаю, что goto использовать незя. Но тут вопрос собственно не в невозможности переписать программу а в том, почему не пашет. При переходе на метку menu5 (в условие мы попадаем точно, проверял) по факту он вываливается в eхitmenu. Если сменить метку на, скажем предыдущую, то переход состоится. В чем прикол? Не более 5 меток?
...
menu4:
    lcd.clear();
    time0 = millis();
    time1 = time0;
    while (time0 + zaderzka * 1000 > millis())
    {
      lcd.setCursor(1, 0);
      lcd.print("PERIOD ZAPISI");
      lcd.setCursor(1, 1);
      lcd.print(period);
      if (period < 10)
      {
        lcd.setCursor(2, 1);
        lcd.print(" ");
      }
      lcd.setCursor(3, 1);
      lcd.print("min -     +");
      if (digitalRead(knop2) == 1)
      {
        if (period >= 10) {
          period -= 5;
          delay(300);
          time0 = millis();
        }
 
      }
      if (digitalRead(knop3) == 1)
      {
        if (period <= 55) {
          period += 5;
          delay(300);
          time0 = millis();
        }
      }
      EEPROM.write(6, period);
      if ((digitalRead(knop1) == 1) && ((time1 + 500) < millis()))
      {
        goto menu5;
      }
    }
    goto exitmenu;
menu5:
...
 
п.с. нуб
Balazaka
Offline
Зарегистрирован: 15.01.2016

Сам дурак... разобрался

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Кто сказал, что нельзя. Можно, просто как правило, можно обойтись без него.

В следующий раз вставляйте скетч правильно.

 

at0mix
at0mix аватар
Offline
Зарегистрирован: 23.11.2015

Balazaka пишет:

Сам дурак... разобрался

%)

Цитата:

Цитата:
Использование goto не рекомендуется в С программировании, многие авторы книг не советуют его применять вообще, так как это не является необходимым(с их точки зрения).

http://arduino.ru/Reference/Goto