Wie könnte man diese aufgabe lösen (Java, Programmieren)?
2 Antworten
Der Algorithmus lautet:
Wenn n > 21
gib 2 * (n - 21) zurück
sonst
gib 21 - n zurück
Das musst Du jetzt nur noch nach Java übersetzen.
Danke dir ich war verwirrt leider hab ich es mit den Return noch nicht so drauf
Kommt darauf an, was du schon kennst in Java.
Du kannst das mit einer if-Abfrage machen.
Oder mit einem ternären Operator, das ist am kürzesten, aber etwas schwieriger nachzuvollziehen:
return n>21 ? 2*Math.abs(n-21) : Math.abs(n-21);
Und dann kannst du den hübschen Gedanken von ohwehohach noch einbauen:
return n>21 ? 2*(n-21) : 21-n;
Das macht es dann noch kürzer.
Sowas fliegt bei mir durchs Code Review. Mach es offensichtlich und lesbar, nicht kurz.
Stimmen tut es aber.
Kann ich verstehen. An die Schreibweise gewöhnt man sich dann aber doch so schnell, dass das schon nicht mehr als besonders ausgefallen gilt.
Mir gehts nicht um den Operator sondern ob man nachdenken muss was die Logik macht.
Ja, hier ist es noch verständlich, wenn man sich diese schreibweise aber angewöhnt wirds später wenns komplizierter wird als dieses fiktive Beispiel unnötig kompliziert.
Fehlt nur, dass der Absolutbetrag ausgegeben werden soll.