Brauche detailierte Erklärung zum Java Code

...komplette Frage anzeigen Der Code - (Programm, programmieren, Java)

2 Antworten

Ich habe noch nie Java zuvor gemacht

Was genau verstehst du darunter? Dass du diesen Code in der ersten Unterrichtsstunde bekommen hast, oder dass du vor diesem Schuljahr noch nicht mit Java gearbeitet hast? Und hast du bereits mit einer anderen Programmiersprache gearbeitet?

Im Falle "erste Unterrichtsstunde und keine Vorkenntnisse" fände ich es doch schon etwas viel verlangt vom Lehrer, wenn du dieses Programm gleich auf anhieb verstehen können sollst. Es enthält:

  • ein "echtes" Objekt (vom Typ Random)
  • for-Schleifen
  • eine do-while-Schleife
  • eine if-Verzweigung
  • mehrere Aufrufe statischer Methoden (die ein blutiger Anfänger natürlich alle noch nicht kennt)

Das kann man zwar sicherlich erklären, die Antwort würde aber ziemlich lang werden...

Das alles ist Stoff für mehrere Lektionen und nicht für die erste Unterrichtsstunde.

Antwort bewerten Vielen Dank für Deine Bewertung
GreenNeon1995 05.05.2014, 21:39

Ja er hat gesagt er schmeißt uns mal ins kalte Wasser und wollte ich wollte nicht vollkommen mit leeren Händen da stehen wenn er das abfragt!

0
martin7812 05.05.2014, 23:02
@GreenNeon1995

Na super.

Und dann macht euer Lehrer auch noch einen Fehler (eventuell auch noch beabsichtigt!) in das Programm, nämlich:

mittelwert = summe/Array1.length;

(Dabei wird der Mittelwert auf eine Ganzzahl gerundet, was wohl so nicht sein soll - wie erfahrene Programmierer am "double" sehen.)

0

Hallo,

hast du noch nie Java "gemacht" oder noch gar keine Programmiersprache? Weil das ist ja kein rocket science und erklärt sich ja von selbst. Wenn zu bestimmten Zeilen Fragen hast dann versuche ich dir die gerne zu erklären aber sicher nicht den ganzen Spaghetticode.

Antwort bewerten Vielen Dank für Deine Bewertung
GreenNeon1995 05.05.2014, 21:35

Ja das Danke für die Hilfe! Habe auch noch keine andere Sprache vorher gemacht! Was mir nicht ganz klar ist, ist das mit dem max( Array1 [i] >max)? Array1:max; sowie das nachfolgende mit min...

0
EightSix 06.05.2014, 00:29
@GreenNeon1995

Das ist die verkürzte Schreibweise für if else.

if(Array1[i] > max)
   max = Array1[i];;
else
   max = max;

Es wird also einfach das ganze Array durchlaufen und wenn ein Wert höher wie in der Variable max gefunden wird dann wird der in max gespeichert ansonsten wird einfach nix gemacht (max = max).

Bei min das selbe nur umgekehrt.

0
Franz1957 06.05.2014, 02:56
@EightSix

Diese Vorgehensweise, auch wenn sie elegant ausschaut, ist freilich nicht die durchdachteste, denn die Anweisung max = max; kostet CPU-Zyklen, ohne daß etwas sinnvolles geschieht. Möglicherweise ist der Compiler intelligenter als der Programmierer und wirft solche Vorgänge bei der Code-Optimierung raus. Vielleicht hofft der Lehrer ja, daß solche Fragen gestellt werden.

if(Array1[i] > max) {
   max = Array1[i];
}
// else garnix

So würde ich das machen. Die geschweifte Klammer um ein einzelne Anweisung ist zwar nicht zwingend notwendig, aber ich empfehle sie dennoch, denn es hilft, die Sorte von Bugs zu vermeiden, die dann leicht entstehen, wenn man den Code irgendwann später weiterbearbeitet und, ohne viel zu denken, z.B. eingibt:

if(Array1[i] > max)
   max = Array1[i];
   Sytem.out.writeln("Soeben wurde max veraendert.");
und();
weiter();
gehts();
0
Franz1957 06.05.2014, 03:04
@Franz1957

Entschuldigung, ich war im Kopf wohl wieder woanders, vielleicht bei Pascal. Die Konsolenausgabe-Anweisung muß natürlich heißen:

 System.out.println("Soeben wurde max veraendert.");
0

Was möchtest Du wissen?