Befehl zum Verlassen einer Schleife

chaostheory

Bekanntes Mitglied
Hallo,
ich habe in einer Methode eine while-Schleife, in der wiederum mehrere einzelne while-Schleifen sind. Ich suche nun einen Befehl, der eine Schleife verlässt. Ich kenne nur break, das meines Wissens nach aber die komplette Methode beendet!? Gibt es einen Befehl, der nur die eine Schleife verlässt?

Grüße
 

Ark

Top Contributor
Wenn du mehrere geschachtelte Schleifen hast, verlässt [c]break[/c] nur die nächste umgebende ("aktuelle"). Solltest du stattdessen aus mehreren Schleifen gleichzeitig ausbrechen wollen, musst du mit Labels arbeiten:
Java:
meinLabel:
for(...){
    for(...){
        ...
        break meinLabel;
        ...
    }
}
// Hier geht's dann weiter
Ark
 

Noctarius

Top Contributor
Nein man sollte nicht mit Labels arbeiten! Pfui bäh!

Dann sollte man die zweite Schleife in eine eigene Methode auslagern um Verschachtelung und solche hässlichen Konstrukte wie Label-Breaks (früher nannte man so einen Schmarn Goto) zu unterbinden.

Das Java allein solche eine Möglichkeit bietet gehört verboten :)

Java:
public boolean found(Matrix matrix) {
  for (MatrixRow row : matrix.getRows()) {
    if (found(row)) {
      return true;
    }
  }
  return false;
}

private boolean found(MatrixRow row) {
  for (MatrixColumn column : row.getColumns()) {
    if (isSolution(column)) {
      return true;
    }
  }
  return false;
}
 
Zuletzt bearbeitet:
T

Tomate_Salat

Gast
Wenn du mehrere geschachtelte Schleifen hast, verlässt [c]break[/c] nur die nächste umgebende ("aktuelle"). Solltest du stattdessen aus mehreren Schleifen gleichzeitig ausbrechen wollen, musst du mit Labels arbeiten:
Java:
meinLabel:
for(...){
    for(...){
        ...
        break meinLabel;
        ...
    }
}
// Hier geht's dann weiter
Ark

Nein, aus, böse! Hörst du auf Gotos zu empfehlen :D.

Mach dann lieber soetwas (oder Noctarius' Lösungsvorschlag):
Java:
public static void main(String[] args) 
{
	boolean outer=true;
	
	for(int i=0;i<100 && outer;i++) {
		for(int j=0;j<100;j++) {
			System.out.println(i + " " + j);
			if(j==10) {
				outer=false;
				break;
			}
		}
	}
}
 

Ark

Top Contributor
Für euch sind es gotos, für mich ist es ein "ich hätte ja am liebsten return gesagt, aber leider geht es in der Methode noch weiter". ;)

@Noctarius: Was machst du denn, wenn du in solchen geschachtelten Schleifen verschiedene lokale Variablen aktualisieren musst (z.B. Maxima und Summen ermitteln), weil du diese Werte später (z.B. hinter der inneren Schleife, aber noch in der äußeren Schleife und auch nach den Schleifen) benötigst? In Java "mal eben" mehrere Werte zurückgeben? Geht so direkt nicht. Eigene Klasse anlegen? Macht die Sache komplexer und komplizierter, als sie ist. Objektvariablen verwenden? Hat was von Missbrauch.

Da gefällt mir der Vorschlag von Tomate_Salat schon besser. Allerdings hat er (der Vorschlag, nicht der Salat :D) auch ein paar Schönheitsfehler: Wenn mehrere solcher Schleifen aufeinanderfolgen, müsste man [c]outer[/c] entweder nach der Schleife wieder zurücksetzen (potentielle Fehlerquelle!), oder noch mehr Namen für solche Flags verbrauchen. Außerdem können diese Flags nicht final sein, was zumindest mich wesentlich mehr stört als ein paar Labels.

Ark
 
T

Tomate_Salat

Gast
wieso willst du diese variablen final machen?
Wieviele schleifen willst du den verschachteln? Bei mir ist das eher die Seltenheit, dass ich mehrere Schleifen ineinander habe.
Labels sind imho nicht schöner, als 2 weitere Variablen (im Notfall könntest du auch z.B. [c]i[/c] hochsetzen was ich aber unschön fände).
Wenn es einer Berechnung dient, und du dann aus 2 Schleifen ausbrechen musst, kannst du diese auch in eine Methode stecken:

Java:
....
int ergebnis=calc(100,102982);

public int calc(int a, int b) {
   for(int i=0;i<a;i++) {
        for(int j=0;j<b;j++) {
              if(j==42) return b*a;
        }
   }
}

imho brauchst du Labels nicht. Es gibt immer eine "schönere" Alternative zu Spagethicode.
 

Noctarius

Top Contributor
Also ich sehe das ähnlich. Selten kommt man in die Verlegenheit mehrere Schleifen zu schachteln. Das kann passieren wenn ich z.B.:
Java:
for (Channel channel : channelManager.getChannels()) {
  for (User user : channel.getUsers()) {
    // ...
  }
}

Wenn ich dann aber unsaubere Abbruchbedingungen habe, dann muss ich die Schleifen halt auf Methoden aufteilen.
 

Ark

Top Contributor
Mich schockiert gerade, dass es sowas wie labels gibt :autsch:
Zähl doch mal hier die Anzahl der Labels:
Java:
public void foo(char c){
    switch(c){
        case '0':
        case '1':
        case '2':
        case '3':
            a += c - '0';
            break;
        case '+':
        case '-':
            b.append(c);
            break;
        default:
            throw new IllegalArgumenException("illegal character: " + c);
    }
}

Leider ist ja auch goto ein reserved keyword und ich hoffe, dass niemals nie nicht... Ihr wisst schon :)

Ich hätte wohl auch ein Problem mit goto. ;) In Java können Labels aber nicht einfach irgendwo hingesetzt werden, und goto gibt es ja auch nicht. Insofern bin ich der Meinung, dass dies mit Java schon ein guter Mittelweg ist.

wieso willst du diese variablen final machen?
Je mehr final ist, desto besser (im Allgemeinen, gilt übrigens auch für Klassen). Oder treffender gesagt: Je mehr nicht-final, desto schlimmer. So ist zumindest meine Erfahrung. Je weniger man ändern kann, desto weniger kann man kaputt machen (mal ganz einfach gesagt).

Wieviele schleifen willst du den verschachteln? Bei mir ist das eher die Seltenheit, dass ich mehrere Schleifen ineinander habe.
Bei mir ist es auch eher eine Seltenheit. Und noch viel seltener brauche ich dabei Labels. Deshalb verstehe ich auch nicht so ganz, was an Schleifenlabels so verwerflich sein soll. Unstrukturiert programmieren kann man auch ohne Labels. Und nur wegen solcher seltenen Fälle eigene Klassen anlegen zu wollen/müssen, hat was von "mit Kanonen auf Spatzen schießen" oder "für jede Kleinigkeit ein Framework entwickeln". Deswegen ist das einfach nicht mein Weg. :bahnhof:

Wenn es einer Berechnung dient, und du dann aus 2 Schleifen ausbrechen musst, kannst du diese auch in eine Methode stecken […]
Siehe oben: das funktioniert nur elegant, solange du dafür kein eigenes Objekt brauchst, weil du mehr als einen Wert zurückgeben musst.

Ark
 
Zuletzt bearbeitet:

Noctarius

Top Contributor
Zähl doch mal hier die Anzahl der Labels:
Java:
public void foo(char c){
    switch(c){
        case '0':
        case '1':
        case '2':
        case '3':
            a += c - '0';
            break;
        case '+':
        case '-':
            b.append(c);
            break;
        default:
            throw new IllegalArgumenException("illegal character: " + c);
    }
}

Lass mich kurz *ääääähhhhhhhhhhm*
0 :D
 
G

Gast2

Gast
ich nutze lieber ein folgendes Konstrukt:

Java:
if("bedingung") {
} else if ("weitere bedingung") {
} else {
}

Ich find das Debugging von nem switch case Konstrukt manchmal extrem nervig, vor allem wenn mal wieder ein break vergessen wurde.

Das man Labels jedoch außerhalb von nem switch nutzen kann hat mich erschreckt.
 
T

Tomate_Salat

Gast
Je mehr final ist, desto besser (im Allgemeinen, gilt übrigens auch für Klassen). Oder treffender gesagt: Je mehr nicht-final, desto schlimmer. So ist zumindest meine Erfahrung. Je weniger man ändern kann, desto weniger kann man kaputt machen (mal ganz einfach gesagt).
Man kanns übertreiben. Nicht alles muss final sein, du brauchst auch noch veränderbare Variablen! Klassen sollte man immer dann final machen, wenn man nicht will, dass von ihnen geerbt wird. Parameter sollte man imho immer final machen (vergesse ich gerne, deswegen habe ich mein Eclipse eingestellt, dass es als Error behandelt wird).
Sorry, aber imho kein Grund gegen diese flags.

Siehe oben: das funktioniert nur elegant, solange du dafür kein eigenes Objekt brauchst, weil du mehr als einen Wert zurückgeben musst.
Was ist den an Objekten nicht elegant oO. Meine Erinnerung kann falsch sein, aber gerade wenn ich solche verschachtelungen habe, habe ich afaik auch immer Objekte, an denen ich arbeite.
 

Noctarius

Top Contributor
G

Gast2

Gast
Ich habe Eclipse so eingestellt, dass er bei einem Save automatisch final einsetzt, überall (außer an Typen - also Klassen, Enums, Interfaces).

Sry für OT aber genau das Feature such ich schon ewig in den Einstellungen! Wo genau stellt man das ein. Will das schon seit Wochen machen seit ich auf Eclipse umgestiegen bin!
 
T

Tomate_Salat

Gast
Ich habe Eclipse so eingestellt, dass er bei einem Save automatisch final einsetzt, überall (außer an Typen - also Klassen, Enums, Interfaces).
auch nett, muss ich mir mal ansehen.

Ich finde die Regel für überall final gut, das zeigt beim Lesen schon "ich will nicht, dass dieser Wert verändert wird".
wo es Sinn macht, ja, aber um etwas non-finales zu umgehen ein Goto-Konstrukt einsetzen. :noe:
 

Ark

Top Contributor
Man kanns übertreiben. Nicht alles muss final sein, du brauchst auch noch veränderbare Variablen!
Man braucht keine veränderbaren Variablen, wenn man nur oft genug kopiert (siehe auch: Rekursion, funktionale Programmierung). Veränderbare Variablen (gibt es eigentlich veränderbare Konstanten? :D) erscheinen schon nützlich und dürfen natürlich auch Verwendung finden. "Je mehr final, desto besser", widerspricht dem aber auch nicht wirklich. ;)

Was ist den an Objekten nicht elegant oO. Meine Erinnerung kann falsch sein, aber gerade wenn ich solche verschachtelungen habe, habe ich afaik auch immer Objekte, an denen ich arbeite.
In solchen Fällen hast du natürlich Glück gehabt. Ich habe auch nichts gegen Objekte an sich, sondern dagegen, dass Wegwerf-Klassen für Wegwerf-Objekte mit Wegwerf-Zuständen erzeugt werden, nur um scheinbare Unzulänglichkeiten einer Sprache zu begegnen.

Alle cases und defaults sind Labels: 14.11 The switch Statement

Ark
 

Fu3L

Top Contributor
Sehe das ähnlich wie Ark. Was regt ihr euch über ein kleines continue outer; so auf?^^ ;)
Bevor ich alles in zig Objekte verkapsle, mach ich lieber mal ne etwas längere Schleife. Und bevor ich immer eine boolean-variable mit rumschleppe, setz ich lieber ein Label. Bei zu komplizierten Gebilden nutze ich auch solche Wrapper-Objekte, klar, aber nicht für jede Kleinigkeit.
Das ist wohl eher Geschmackssache und auch immer unterschiedlich was man programmiert. Performancekritische Anwendungen? Oder ne GUI-Büro-Anwendung wo man selbst mit Pech die CPU und das RAM nicht auslasten kann?
 
T

Tomate_Salat

Gast
(gibt es eigentlich veränderbare Konstanten? :D)
Jein. Wenn du das als konstante ansiehst:
Java:
final int SOME_VAR=42;

dann ja. Per reflection oder JNI kannst du diesen Wert ändern. Ich glaube, mit einem SecurityManager kann man ersteres unterbinden, aber JNI geht glaube ich immer.

In solchen Fällen hast du natürlich Glück gehabt. Ich habe auch nichts gegen Objekte an sich, sondern dagegen, dass Wegwerf-Klassen für Wegwerf-Objekte mit Wegwerf-Zuständen erzeugt werden, nur um scheinbare Unzulänglichkeiten einer Sprache zu begegnen.

Wie gesagt, dann löst man das notfalls über diese Flags. Du brauchst ja nicht unbedingt einmal flags, du kannst auch Methoden nehmen, in denen du noch Prüfungen durchführen kannst.
 

Ark

Top Contributor
So steht's zwar da, hast aber falsch verstanden. Versuch mal so einen case-label mit break oder continue anzuspringen ;)
Ein Label ist, einfach gesagt, ein Hinweis im Quelltext, damit du Anweisungen wie [c]break[/c], [c]switch[/c] oder [c]continue[/c] mitteilen kannst, auf welche Stelle im Quelltext du dich jeweils beziehst, quasi "wo es weitergeht". Auch switch-Labels haben diesen Zweck: Sagen, wo es weitergeht. Deswegen erscheint es auch nicht unbedingt unnatürlich, dass switches mit fallthrough daherkommen. Du sagst mit switch-case eben nur: "Ab hier, bitte". Dass danach noch weitere Labels kommen, stört die JVM nicht, und sie hält sich auch nicht daran auf. Labels sind nur Markierungen, keine Anweisungen oder Ähnliches.

Da steht einfach nur als Begriff das Wort Label. Das hat aber Spec mäßig nichts mit dem Label als Ansprungspunkt gemeinsam, denn offiziell heißen diese Label [c]Foo:[/c] Break Targets.
Wie gerade beschrieben: Labels sind nur Markierungen. Wie sie tatsächlich verwendet werden oder wann sie in welcher Form erlaubt sind, steht auf einem völlig anderen Blatt.

Die JLS versteht unter "break target" die Anweisung, auf die sich ein [c]break[/c] bezieht: 14.15 The break Statement Im Falle einer ganz simplen for-Schleife mit [c]break[/c] (ohne Label!) ist das "break target" eben diese umgebende for-Schleife. Ein Label hilft nur, um klar zu machen, welche Anweisung gemeint ist, wenn man vom standardmäßigen "break target" abweichen und eben eine andere Anweisung als "break target" nutzen möchte.

Das, was du als "Break Target" anführst, ist einfach nur ein Label: 14.7 Labeled Statements In diesem Abschnitt der JLS steht auch nichts von "break target"; diese Vokabel taucht nur im Abschnitt über [c]break[/c] auf.

Wie gesagt, dann löst man das notfalls über diese Flags. Du brauchst ja nicht unbedingt einmal flags, du kannst auch Methoden nehmen, in denen du noch Prüfungen durchführen kannst.
Im Gegensatz zu Flags ist der Verwendungszweck von Labels klar. Der ist sogar so klar, dass eine IDE wie Eclipse dich warnen kann, wenn du ein Label nicht benutzt. Bei einem Flag funktioniert unter anderem das nicht.

Ark
 
Zuletzt bearbeitet:
S

Spacerat

Gast
@Ark: ^^ ...aber dennoch sind die beiden Labelarten verschieden. Bei switch ergeben sie sich aus der Tatsache, dass jedes Programm auf Prozessorebene prozedural ausgeführt wird, was an einem in OOPs und ebenso in Java vorbei gehen sollte. break-Labels sind prozedurale Programmiertechnik und haben in OOPs nichts verloren und das gilt auch für Java.
 
Zuletzt bearbeitet von einem Moderator:
Ähnliche Java Themen
  Titel Forum Antworten Datum
X wie bekomme ich durch Eingabeaufforderung definierte double in einen Befehl, welcher 3 erwartete double braucht? Java Basics - Anfänger-Themen 3
J jar Befehl wird nicht erkannt Java Basics - Anfänger-Themen 7
Viktor A. Kaiser Ampelschaltung mit if-Befehl Java Basics - Anfänger-Themen 11
Fodoboo131 RegEx- Umwandlung von String in ausführbares Objekt/ Befehl Java Basics - Anfänger-Themen 9
Lion.King switch-Befehl Java Basics - Anfänger-Themen 6
sserio Math. Befehl wird rot markiert Java Basics - Anfänger-Themen 5
F Terminal Windows per Befehl schließen? Java Basics - Anfänger-Themen 9
Y Wie kann man überprüfen, ob bei einem Print Befehl tatsächlich etwas geprintet wurde? Java Basics - Anfänger-Themen 4
H Befehl wird nicht ausgeführt - System.out.println Java Basics - Anfänger-Themen 3
A Scanner Befehl Java Anfänger Java Basics - Anfänger-Themen 8
K Subklassen mit einzigem Befehl addieren Java Basics - Anfänger-Themen 6
F cmd Befehl ausführen Java Basics - Anfänger-Themen 4
S Datenbank Befehl nach Login Java Basics - Anfänger-Themen 5
D Input/Output Befehl aus Benutzereingabe herausfiltern Java Basics - Anfänger-Themen 12
T if else Befehl funktioniert nicht richtig Java Basics - Anfänger-Themen 27
N Javac -version der Befehl ist entweder falsch geschrieben oder...... Java Basics - Anfänger-Themen 8
O Methoden Runtime.getRuntime().exec(befehl); Java Basics - Anfänger-Themen 6
L Ist an diesem Befehl irgendwas falsch? Java Basics - Anfänger-Themen 2
F Wieso wird dieser Befehl nicht ausgeführt? (Anfänger) Java Basics - Anfänger-Themen 2
B Copy Paste Befehl Java Basics - Anfänger-Themen 6
O String: Befehl und Wert erkennen. Java Basics - Anfänger-Themen 4
D Erste Schritte Zuul - 2ten Befehl einführen Java Basics - Anfänger-Themen 68
D Erste Schritte Befehl back implementieren Java Basics - Anfänger-Themen 18
elischa unbekannter Befehl zur Compilezeit Java Basics - Anfänger-Themen 22
B Befehl um ein Befehl abzubrechen Java Basics - Anfänger-Themen 2
M Classpath Befehl zum Kompilieren um die Option classpath erweitern. Java Basics - Anfänger-Themen 5
F Konsolen Befehl ausführen und Rückgabe auswerten Java Basics - Anfänger-Themen 3
S Befehl current: Java Basics - Anfänger-Themen 3
Silvascus Void Methode einem Stringparameter im syso-Befehl hinzufügen Java Basics - Anfänger-Themen 3
slejden Erste Schritte der Befehl import Java Basics - Anfänger-Themen 2
C OOP array Sortieren ohne den sort Befehl Java Basics - Anfänger-Themen 10
J Problem WIE ohne Goto-Befehl lösbar? Java Basics - Anfänger-Themen 6
N Benötige eine Alternative für einen GOTO Befehl Java Basics - Anfänger-Themen 2
O CMD Befehl javac Java Basics - Anfänger-Themen 3
U Java Swing Timer mit ButtonKlick starten u. nach 12 Sekunden Befehl ausführen Java Basics - Anfänger-Themen 7
D Klassenmethode: Befehl erkennen, dann int zurückgeben Java Basics - Anfänger-Themen 2
C Desktopiconwechsel ohne Befehl Java Basics - Anfänger-Themen 0
V Schlüsselworte Befehl Ignorieren? Java Basics - Anfänger-Themen 10
B JDK installieren Befehl java funktioniert nicht Java Basics - Anfänger-Themen 15
J Variablen Auf der suche nach einem Befehl Java Basics - Anfänger-Themen 2
M Frage zum return; Befehl Java Basics - Anfänger-Themen 1
C CMD Befehl + Variable im Java-Code ausführen Java Basics - Anfänger-Themen 8
S Methoden auf befehl ausführen Java Basics - Anfänger-Themen 7
iB0T Eine Art Goto Befehl! Java Basics - Anfänger-Themen 27
H Exit Befehl in eigener Konsole Java Basics - Anfänger-Themen 9
D Erste Schritte bash-Befehl mit Swing ausführen Java Basics - Anfänger-Themen 8
A Schlüsselworte Befehl this Java Basics - Anfänger-Themen 8
E CMD Befehl über Java ausführen? Java Basics - Anfänger-Themen 4
E Warum wird Methode nicht durch return-Befehl beendet? Java Basics - Anfänger-Themen 3
D Hilfe zu Java Befehl In.open Java Basics - Anfänger-Themen 2
B Javadoc-Befehl unter Ubuntu Java Basics - Anfänger-Themen 2
I Befehl/Methode "los()" Java Basics - Anfänger-Themen 17
A Befehl gesucht....wie komme ich an Folgendes Objekt? Java Basics - Anfänger-Themen 6
I Return Befehl in Methode Java Basics - Anfänger-Themen 13
K Befehl per Shell an Java-Applet JAR übergeben Java Basics - Anfänger-Themen 16
S javac Befehl Java Basics - Anfänger-Themen 7
W Befehl ausführen bei Mausklick + gedrückte Strg-Taste Java Basics - Anfänger-Themen 2
B Befehl mit Priorität aufrufen Java Basics - Anfänger-Themen 4
I Befehl wird erst nach dem Ausführen einer Funktion ausgeführt Java Basics - Anfänger-Themen 4
K Problem mit h2 DB Insert Befehl Java Basics - Anfänger-Themen 6
B Befehl für vorselektierten Radiobutton Java Basics - Anfänger-Themen 2
H if-Befehl mit Buttongroup Java Basics - Anfänger-Themen 9
B assert befehl in netbeans Java Basics - Anfänger-Themen 3
M Objekto.Programm. Return-Befehl Java Basics - Anfänger-Themen 4
F Kann String in Befehl wandeln? Java Basics - Anfänger-Themen 12
F Simpler DrawLine - Befehl!? Java Basics - Anfänger-Themen 9
M Befehl zum Einlesen von Benutzereingaben Java Basics - Anfänger-Themen 1
M Befehl zum Fenster schließen? GUI Java Basics - Anfänger-Themen 3
L Do while Befehl verkürzen? Java Basics - Anfänger-Themen 16
-horn- Befehl an CMD übergeben Java Basics - Anfänger-Themen 15
A [Fehlermeldung]Sleep-Befehl Java Basics - Anfänger-Themen 4
B Befehl "javac" wird nicht erkannt Java Basics - Anfänger-Themen 14
S Befehl "javac" funktioniert und Windows 7 nicht? Java Basics - Anfänger-Themen 3
K Terminal Befehl mit Java unter Mac ausführen Java Basics - Anfänger-Themen 18
L Java Persistence API - Update Befehl? Java Basics - Anfänger-Themen 5
X Befehl import Java Basics - Anfänger-Themen 21
Antoras Explizite Typenumwandlung in einem Befehl Java Basics - Anfänger-Themen 3
A Button einen Befehl zuordnen Java Basics - Anfänger-Themen 7
N suche Datums befehl Java Basics - Anfänger-Themen 8
H Problem mit Tastatur Befehl Java Basics - Anfänger-Themen 11
J Kill befehl Java Basics - Anfänger-Themen 44
G java shell script starten und befehl übergeben Java Basics - Anfänger-Themen 3
Z Ant java -classpath befehl Java Basics - Anfänger-Themen 2
X JOptionPane.showMessageDialog(); - Import Befehl? Java Basics - Anfänger-Themen 4
K Befehl um am Anfang einer Methode zu kommen? Java Basics - Anfänger-Themen 9
G Befehl für Ende bei Switch-Auswahl Java Basics - Anfänger-Themen 11
K fehler mit der Befehl Console Java Basics - Anfänger-Themen 3
H Befehl mit Konstruktoren Java Basics - Anfänger-Themen 2
L Leider klappt bei mir ein Befehl nicht Java Basics - Anfänger-Themen 4
P Befehl zum einrücken der textausgabe? Java Basics - Anfänger-Themen 6
A Befehl ausführen beim Schließen der Konsole Java Basics - Anfänger-Themen 3
S Gibt es einen Befehl "Mausklick" o.ä? Java Basics - Anfänger-Themen 6
S Java-Programm ohne -jar Befehl? Java Basics - Anfänger-Themen 9
K Auf File- Befehl warten. Java Basics - Anfänger-Themen 10
T JDK installiert aber der Befehl "javac" funktionie Java Basics - Anfänger-Themen 5
B ItemListener - setText Befehl geht nicht Java Basics - Anfänger-Themen 3
I JNLP - Datenstrom auslesen, Werte berechnen, Befehl automati Java Basics - Anfänger-Themen 6
R auf button klick befehl ausführen Java Basics - Anfänger-Themen 11
G Jar Befehl wird von DOS nicht erkannt Java Basics - Anfänger-Themen 24
G Unix Befehl ps unter Java Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben