Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Das mit der Zuweisung [c]i = i + 1[/c] hatte ich mir angesehen, wobei ich den Zusammenhang nicht so gesehen.
Im unteren Beispiel,
Java:
for(double i : Liste) {
double ergebnis /= i // stimmts so ? hier sollte, wenn die Liste durchlauft wird jedes gefundenes i mit
// dem nächsten i dividiert werden.
}
euch ist aber schon klar das "//" eindeutig für single-line kommentare reserviert ist ... oder ?
und "**" gibt es nicht ...
der grund dafür liegt in der einfachen sache ...
inkrement bzw dekrement ist immer "i + 1" bzw "i - 1" ...
aber bei einer multiplikation oder division würde schlicht der zweite operand fehlen ... den "i * 1" oder "i / 1" haben doch wenig sinn ...
und darum gibt es dafür keien kurzform ... weil es eben mathematisch blödsinn ist und schlicht der zweite operand fehlt ...
@TO
Java:
for(double i : Liste) {
double ergebnis /= i // stimmts so ? hier sollte, wenn die Liste durchlauft wird jedes gefundenes i mit
// dem nächsten i dividiert werden.
}
schon mal falsch ... denn "ergebnis" ist nur INNERHALB des for-each bekannt ...
wenn überhaupt dann so
Java:
double ergebnis=0.0d;
for(double i : Liste) {
ergebnis /= i // stimmts so ? hier sollte, wenn die Liste durchlauft wird jedes gefundenes i mit
// dem nächsten i dividiert werden.
}
double ergebnis=0.0d;
for(double i : Liste) {
ergebnis /= i // stimmts so ? hier sollte, wenn die Liste durchlauft wird jedes gefundenes i mit
// dem nächsten i dividiert werden.
}
boa ... mein gott ... auf die anmerkung wegen des semicolon hättest du echt verzichten können .. ich hab halt einfach den code von TO kopiert und es nicht gesehen das es fehlt ... spätestens der compiler machts klar ...
und ob bei meinem code nun 0.0d rauskommt weil 0/x nun mal 0 bleibt ... ja ... halt nich nach gedacht ... aber im code von TO ist ergebnis auch 0.0d ... denn double wird hier default auch mit 0.0d initliasiert ... das war aber auch weniger sinn meines posts sondern eher der darauf hinzuweisen das wenn man in ergebnis etwas speichern will was mit allen werten zu tun hat dies außerhalb des for-each zu deklarieren ist ...
Bedeutet dies, dass wenn z.B. die Liste [c][3,6,9,12][/c] beinhaltet.
Java:
ergebnis = 0 ist und durch 3 dividiert wird, dann wieder 0 ergibt und weiter mit 6 usw. dividiert wird ?
Aber dann wäre es immer 0.
Eigentlich wollte ich das alle Werte 3/6/9/12 geteilt werden und so zum Ergebnis führen, aber irgendwie seh ich nicht ganz wie man es umsetzen könnte ?
willst du x durch 4 verschiedene Werte teilen? und 4 Ergebnisse erhalten, oder willst du x 4 mal nacheinander durch 4 Werte teilen und danach ein Ergebnis erhalten?
Man sollte sich vor Augen führen, warum es i++ eigentlich gibt. Das stammt vom C, welches damals (vielleicht auch heute noch) die Aufabe hatte, quasi als maschinenunabhängiger Assembler zu funktionieren. i++ sagt dem (ggf. nichtoptimierenden) Kompiler, er möge den Increment-Befehl des Prozessors einsetzen und nicht die Arithmetik aufrufen.
Inzwischen habe sich alle Programmerer an diese Schreibweise gewöhnt; so sehr, dass sogar Programmiersprachen danach benannt wurden. Heutzutage könnte man ohne Nachteile auch ausformulieren.
@TO
wenn deine liste z.b. 3 6 9 12 enthält ... und du am ende das ergebnis von (3/6/9/12) haben willst ... dann musst du das auch ganz normal ausrechnen
wenn du das mit nem loop machen willst ... hmm .. würde ich es so umsetzen
ergebnis muss , wie ich schon sagte , defintiv AUßERHALB von for() deklariert werden ...
grund :
1) wenn ergebnis INNERHALB von for() deklariert wird ist es außerhalb nicht mehr sichtbar
2) ergebnis würde bei jedem loop neu mit "0.0d" initialisiert ...
bei der deklaration wird ergebnis außerdem gleich mit dem ersten array-wert initialisiert ...
eine prüfung auf 0.0d kann hier entfallen denn 0.0d/x = 0.0d ... und x/0.0d = ERROR ... ergo : taucht 0.0d als erstes element auf ist das ergebnis 0.0d ... taucht es irgendwo anders ebenfalls auf gibt es einen fehler ...
und dann wird im loop einfach ergebnis durch den aktuellen index beginnend ab 1 geteilt ...
bei 3/6/9/12 kommt 1/216 als ergebnis ... will ich jetzt nicht in dezimal umrechnen ... aber sollte stimmen ...