/*
https://forum.arduino.cc/t/switch-case-mit-return-verlassen-geht-das/1219004/26
by noiasca
2024-02-02
to be deleted 2024-04
*/
uint8_t convert(uint8_t in) {
// out 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
const uint8_t mapping[] {0, 1, 2, 3, 61, 63, 65, 71, 73, 75, 45, 48, 51, 53, 55, 56, 57, 66, 67, 77, 80, 81, 82, 85, 86, 95, 96, 99};
for (size_t i = 0; i < sizeof(mapping); i++) {
if (mapping[i] == in)
return i + 1; // weil niedrigster Wert in der Ausgabe 1 ist
}
return 42; // unbekannter Wert
}
// testweise Ausgabe 0..99 - auch fehlerhafte Inputs!
void debug() {
Serial.println("in\tout");
for (size_t i = 0; i < 100; i++) {
Serial.print(i);
Serial.print("\t");
Serial.println(convert(i));
}
}
void setup() {
Serial.begin(115200);
debug();
Serial.println();
Serial.println(convert(80)); // testcase
}
void loop() {}