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.

Zyuukie 
Fragesteller
 22.09.2023, 15:42

Danke dir ich war verwirrt leider hab ich es mit den Return noch nicht so drauf

0

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);

FataMorgana2010  22.09.2023, 15:45

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.

0
zooper  22.09.2023, 17:27
@FataMorgana2010

Sowas fliegt bei mir durchs Code Review. Mach es offensichtlich und lesbar, nicht kurz.

Stimmen tut es aber.

0
FataMorgana2010  22.09.2023, 18:25
@zooper

Kann ich verstehen. An die Schreibweise gewöhnt man sich dann aber doch so schnell, dass das schon nicht mehr als besonders ausgefallen gilt.

0
zooper  22.09.2023, 21:10
@FataMorgana2010

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.

0