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 einen alternativen Browser verwenden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
[Java] Array-Inhalt auf Duplikate überprüfen.
- Ersteller kalleberlin
- Erstellt am
Keita
Lt. Commander
- Registriert
- Dez. 2006
- Beiträge
- 1.293
Eigentlich war es völlig stumpfsinnig, weil der Zähler i gar nicht (mehr) gebraucht wird, ich hatte ursprünglich i dazu genommen, um die Länge der ArrayList zu bestimmen, d.h. entweder
oder
wären der richtige Weg.
@tewes
continue, break und ähnliche Kostrunkte würde ich nicht gerade mit goto gleichsetzen…
@Cobinja
IMHO ist es nicht sonderlich sinnvoll stumpf zu inkrementieren, um bei Bedarf wieder zu dekrementieren, daß alle drei Teile der Schleifendeklaration optional sind, hat ja gute Gründe.
greetings, Keita (heute völlig verpeilt)
Code:
while (list.size() < 6) {
Integer obj = new Integer(rand.nextInt(49));
if (list.contains(obj))
continue;
list.add(obj);
}
oder
Code:
for (int i = 0; i < 6;) {
Integer obj = new Integer(rand.nextInt(49));
if (list.contains(obj))
continue;
list.add(obj);
++i;
}
wären der richtige Weg.
@tewes
continue, break und ähnliche Kostrunkte würde ich nicht gerade mit goto gleichsetzen…

@Cobinja
IMHO ist es nicht sonderlich sinnvoll stumpf zu inkrementieren, um bei Bedarf wieder zu dekrementieren, daß alle drei Teile der Schleifendeklaration optional sind, hat ja gute Gründe.
greetings, Keita (heute völlig verpeilt)
Zuletzt bearbeitet:
Cobinja
Lt. Junior Grade
- Registriert
- Juli 2006
- Beiträge
- 454
Ich hab ja auch nicht gesagt, daß ich diesen Weg als den sinnvollsten ansehe, wenn man aber mit einer for-Schleife mit komplettem Header und einem continue arbeitet, bleibt einem manchmal nichts anderes übrig.
Wenn du dir mal meinen Code in Post #12 anguckst, siehst du zwar eine for-Schleife, aber kein continue, sondern eine geschachtelte do-while-Schleife. Damit kann man sich den (imho stilistisch eher unschönen) Weg mit continue sparen.
Wenn du dir mal meinen Code in Post #12 anguckst, siehst du zwar eine for-Schleife, aber kein continue, sondern eine geschachtelte do-while-Schleife. Damit kann man sich den (imho stilistisch eher unschönen) Weg mit continue sparen.
krizzelfix
Commander
- Registriert
- Sep. 2005
- Beiträge
- 2.626
@Keita: ich habe im Programmierunterricht gelernt das die Sprunganweisungen wie goto continue und break alle schlecht für die übersicht sind.
dcdead
Captain
- Registriert
- Okt. 2005
- Beiträge
- 3.535
Also ich bin auch ein Jump-Anweisungen-Befürworter. Und wenn's um die Übersicht geht, ist Keitas Code sicherlich am besten, ganz im Gegensatz zu verschachtelten Schleifen, denn die erhöhen dir oftmals die Komplexität direkt um einen ganzen Exponenten (In diesem Beispiel natürlich nicht
) und der Code ist IMHO erst recht unübersichtlich.

dcdead schrieb:Also ich bin auch ein Jump-Anweisungen-Befürworter. Und wenn's um die Übersicht geht, ist Keitas Code sicherlich am besten, ganz im Gegensatz zu verschachtelten Schleifen, denn die erhöhen dir oftmals die Komplexität direkt um einen ganzen Exponenten (In diesem Beispiel natürlich nicht) und der Code ist IMHO erst recht unübersichtlich.
Alles was du mit der Jump Anweisung realisierst, kannst Du auch mit einer einfachen while Schleife machen. Das macht der Compiler eh nachher selbst.
GOTO, continue, break und solche Sachen zeugen einfach nur von einen schwachen Programmierstiel.
dcdead
Captain
- Registriert
- Okt. 2005
- Beiträge
- 3.535
Nen guten Programmierstiel kann man sich ja leisten, hauptsache der Stil passt zu den in deiner Firma verwendeten Konventionen, damit die anderen es verstehen
Und außerdem macht es der Compiler andersrum
Er macht aus deiner Schleife einen Code mit Sprunganweisung.


dcdead schrieb:Nen guten Programmierstiel kann man sich ja leisten, hauptsache der Stil passt zu den in deiner Firma verwendeten Konventionen, damit die anderen es verstehenUnd außerdem macht es der Compiler andersrum
Er macht aus deiner Schleife einen Code mit Sprunganweisung.
Da hat mir mein Professor mal was anderes erzählt.
Woher hast Du die Info?
Cobinja
Lt. Junior Grade
- Registriert
- Juli 2006
- Beiträge
- 454
Bei einfachen Sachen wie in diesem Thread können goto und continue mal eingesetzt werden. Bei komplexeren Aufgaben sollte man einfach aus Gründen der Lesbarkeit auf sie verzichten.
Man stelle sich einfach mal 10000 Zeilen Code vor, in denen dauernd mit Labels und goto gearbeitet wird.
Oder einen Algorithmus, bei dem 5 Schleifen ineinander geschachtelt werden müssen, weil er sonst nicht funktionieren kann. Wenn ich da mit continue arbeiten würde, könnte kein anderer Entwickler später mit diesem Code etwas anfangen, und sei noch so gut kommentiert.
Bei break sieht es anders aus. Es gibt Situationen, da ist ein break wesentlich lesbarer und manchmal sogar zwingend notwendig (switch-case). Nichtsdestotrotz arbeite ich lieber mit "vernünftigen" Schleifen und gehe damit sicher, daß andere meinen Code lesen können, als daß ich es mir einfach und anderen schwer mache und eventuell "schlechten" Code produziere.
Man stelle sich einfach mal 10000 Zeilen Code vor, in denen dauernd mit Labels und goto gearbeitet wird.
Oder einen Algorithmus, bei dem 5 Schleifen ineinander geschachtelt werden müssen, weil er sonst nicht funktionieren kann. Wenn ich da mit continue arbeiten würde, könnte kein anderer Entwickler später mit diesem Code etwas anfangen, und sei noch so gut kommentiert.
Bei break sieht es anders aus. Es gibt Situationen, da ist ein break wesentlich lesbarer und manchmal sogar zwingend notwendig (switch-case). Nichtsdestotrotz arbeite ich lieber mit "vernünftigen" Schleifen und gehe damit sicher, daß andere meinen Code lesen können, als daß ich es mir einfach und anderen schwer mache und eventuell "schlechten" Code produziere.
Ähnliche Themen
- Antworten
- 4
- Aufrufe
- 473
- Antworten
- 22
- Aufrufe
- 1.276