Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Для пунктов меню лучше использовать логику CASE или IF? #9

Open
brightproject opened this issue Oct 9, 2022 · 1 comment

Comments

@brightproject
Copy link

brightproject commented Oct 9, 2022

Ищу оптимальный код для своего меню.
Перелопатил с десяток примеров, и обратил внимание, что во многом коде меню, пункты записаны массивом

const char *channelNames[] = {
  "Channel 1",
  "Channel 2",
  "Channel 3",
  "Channel 4",
  "Channel 5",
  "Channel 6",
  "Channel 7",
  "Servo 1",
  "Servo 2",
  "Drive",
};

или

char *menuTxt[] = {
"Temperature",
"Humidity",
"Both","Battery",
"Backlight",
"Contrast",
"EEPROM dump",
"Graph",
"Help",
"Reboot"
};

А в некоторых, зашиты жестко в коде

  switch (menu) {
    case 0:
      menu = 1;
      break;
    case 1:
      lcd.clear();
      lcd.print(">MenuItem1");
      lcd.setCursor(0, 1);
      lcd.print(" MenuItem2");
      break;
    case 2:
      lcd.clear();
      lcd.print(" MenuItem1");
      lcd.setCursor(0, 1);
      lcd.print(">MenuItem2");
      break;
    case 3:
      lcd.clear();
      lcd.print(">MenuItem3");
      lcd.setCursor(0, 1);
      lcd.print(" MenuItem4");
      break;
    case 4:
      lcd.clear();
      lcd.print(" MenuItem3");
      lcd.setCursor(0, 1);
      lcd.print(">MenuItem4");
      break;
    case 5:
      menu = 4;
      break;
  }

И здесь вопрос собственно - что предпочтительнее использовать конструкцию SWITCH-CASE или IF-ELSE?

switch (var) {
    case 1:
      //выполняется, когда var равно 1
      break;
    case 2:
      //выполняется когда  var равно 2
      break;
    default: 
      // выполняется, если не выбрана ни одна альтернатива 
      // default необязателен 
  }
  if(var=1) //выполняется, когда var равно 1;
  if(var=2) //выполняется, когда var равно 2;

Вопрос эстетики или действительно важно применять ту или иную конструкцию?
В более поздних примерах кода из интернете(до 2017 года) применяют больше IF-ELSE.
В свежих примерах(с 2018 и до нг) чаще встречаю SWITCH-CASE.

@brightproject brightproject changed the title Для пунктов меню лучше использовать логику CASE или IF Для пунктов меню лучше использовать логику CASE или IF? Oct 9, 2022
@GmDio
Copy link

GmDio commented May 28, 2023

Я использую IF ELSE, мне так удобнее, а так кажется вряд ли кто-то ответит на этот вопрос. Не думаю, что будет какой-то прям выигрыш в быстродействии того или иного выбора, а вымерять микросекунды, ну такое...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants