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.
ich will gerade einen Kalender programmieren, mit etwas hilfe bin ich zu diesem hier gekommen:
Code:
String[][][] termine;
termine = new String[12][][];
termine[0] = new String[31][24]; // Januar
termine[1] = new String[28][24]; // Februar
termine[2] = new String[31][24]; // März
termine[3] = new String[30][24]; // April
termine[4] = new String[31][24]; // Mai
termine[5] = new String[30][24]; // Juni
termine[6] = new String[31][24]; // Juli
termine[7] = new String[31][24]; // August
termine[8] = new String[30][24]; // September
termine[9] = new String[31][24]; // Oktober
termine[10] = new String[30][24]; // November
termine[11] = new String[31][24]; // Dezember
for (int i = 0; i < termine.length; i++) // Den Inhalt aller
for (int j = 0; j < termine[i].length; j++) // Felder auf leer
for (int k = 0; k < termine [i][j].length; k++) // setzen
termine[i][j][k] = "";
Es geht mit jetzt gar nicht drum zu hören wie schlecht das gelöst ist usw usw....ich würde nur gern einen Teil erklärt haben, und zwar die Schleife die alle Felder initialisiert...
Ganz einfach: Ich versteh nicht wie die funktioniert...vor allem termine.length und termine[j].length sind mir ein Rätsel..wäre jemand so gut mir diese Schleife in einfachen Worten (Anfänger moep ^^) mal von vorne bis hinten zu erklären ? (Ist ja auch nich sooo viel *g*)
Also termine.length sagt dir wie lang das Array termine ist also bei dir 12,
termine.length sagt dir wie lang das Array an stelle "i" ist als sagen wir mal "i" ist grade 1 dann wär das der Februar mit der Länge 28.
Und termine[j].length sagt dir wie lang das Array an stelle "i" "j" (für jeden tag immer 24) ,also das kanst du dir wie eine Tabelle vorstellen also
die i`te Spalte und j`te Zeile wobei es bei dir einmal eine Tabelle von Monaten und Tagen gibt und eine von Tagen und Stunden.
Du hast halt mit termine eine 3 Dimensiopnales Array (termine = new String[12][][]. Mit jeder for-Schleife durchläufst du eine Diemension des Arrays. Stell dir das ganze wie einen Schrank mit Schubladen und noch mit Fächern in den Schubladen vor.
Die erste schleife durchläuft die erste Dimension und braucht dafür dessen Länge, also termine.length. Da wir uns jetzt in der ersten Dimesnion des Arrays befinden und nun die 2te durchsuchen wollen brauchen wir das i, damit wir in diese reinkommen: termine.length. Und das gleiche passiert in der letzten Schleife: termine[j].length. Du greifst damit nich auf irgendwelche Zahlen zu, sondern nur auf die Länge des Arrays.
termine.length = Länge der ersten Dimension
termine[zahl] = Wert aus der ersten Dimension
termine.length = Länger der zweiten Dimension
termine[zahl][zahl2] = Wert aus der zweiten Diemension
termine[j].length = Länge der dritten Dimension
termine[zahl][zahl2][zahl3] = Wert aus der dritten Dimenson
for (int i = 0; i < termine.length; i++) { // Den Inhalt aller
for (int j = 0; j < termine[i].length; j++){ // Felder auf leer
for (int k = 0; k < termine [i][j].length; k++){ // setzen
termine[i][j][k] = "";
}
}
}
Also wenn man mit Klammer arbeite wir es vielleicht etwas verstäntlicher.
Also als erstes kommt die erste for schleife die 12 mal duchlaufen. Und zwar 12 mal alles was nach der ersten und
und bis zu lesten klammer steht.
das:
Code:
for (int j = 0; j < termine[i].length; j++){ // Felder auf leer
for (int k = 0; k < termine [i][j].length; k++){ // setzen
termine[i][j][k] = "";
}
}
Die 2 for- Schleife die wir so oft duchlaufen wie der Monat tage hat bei Januar 31 mal und Februar 28 mal usw. Insgesamt wird die 2 schleife 12 mal gestartet und zwar immer wieder wenn die erste schleife einmal
duchlaufen wurde und wieder von vorne beginnt (also insgesamt wir alles was nach der Klammer der 2 for-schleife steht bis zu vorlästen Klammer 365 mal duchlaufen halt für jeden Tage ein mal).
das:
Code:
for (int k = 0; k < termine [i][j].length; k++){ // setzen
termine[i][j][k] = "";
}
Die 3 for-schleife wir dann für jeden Tage 24 mal duchlaufen also
das hier
Aber 24 mal für jeden Tag also insgesamt 8760 mal. Halt für jede Stunde jedes Tages in jedem Monat 1 mal.
Wenn du es immer noch nicht verstanden hast solltes du mal schauen ob das Programm mit dem du arbeites einen debugger hat damit kannst du dann jeden einzelnen schritt duchgehen.