-
Notifications
You must be signed in to change notification settings - Fork 48
Open
Description
Ищу оптимальный код для своего меню.
Перелопатил с десяток примеров, и обратил внимание, что во многом коде меню, пункты записаны массивом
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.
Metadata
Metadata
Assignees
Labels
No labels