Das ist jetzt auch nur eine möglichst komplizierte if-Verzweigung, oder?
Nöö, das ist schon ganz ok so.
Würde bei mir auch kaum anders aussehen.
while (nss.available())
Solange serielle Daten anliegen
if (gps.encode(nss.read()))
Lese 1 Zeichen und verarbeite Eingabe
return true;
Vollständiger Datensatz wurde gelesen und für korrekt befunden
return false;
Es liegt noch kein vollständiger Datensatz zur Weiterverarbeitung bereit.
Man kann sich darüber in die Wolle bekommen, ob es "erlaubt" ist 2 Return in einer Funktion zu haben.
Oder ob einem der Einrückungsstil gefällt.
Aber sonst?
Wie würdest du es besser machen?