was bedeutet in Java Z.B (a.length-1;....a[ i - 1];....a[a.length-1])?
ich hab diesen Index (0,1,2,3,4)
a.length-1; bedeutet, dass ich von links ein Mal subtrahiere? oder was?
a[ i - 1];??
a[ a.length - 1 ]???
a : Parameter
i : wird als bezeichner für die Indexe
3 Antworten
a.length - 1 steht für die Anzahl der Elemente - 1. Würdest du das subtrahieren der eins weglassen würdest du versuchten einen Speicherwert der dem Array nicht zugewiesen ist auszulesen oder gar zu verändern #bufferOverflow. Arrays beginnen mit dem index 0.
a ist in dem Fall das Array, i der aktuelle index in der (ich vermute mal) for Schleife.
Hallo Anas111,
a.length-1 ändert am Array selbst nichts, würde es in einem 'Syso' stehen würdest du die Länge des Arrays -1 ausgegeben bekommen, hier vermutlich 4.
a[i-1] würde die Länge des Arrays auf ein weniger des Wertes in i setzen, sagen wir mal die Variable i wäre 4, dann würde der Array eine Länge von 3 besitzen.
a[a.length-1] würde ebenfalls die Länge des Arrays um 1 verkürzen, hierbei nimmst du die Array Länge und rechnest sie mit -1 zusammen und legst sie dann als Array Länge fest. Wenn der Array vorher die Länge 5 hätte, hätte er hier nach nur noch die Länge 4.
Mfg
TOminerTV
Nein, a.length-1 würde ohne weiteres keine Wirkung haben, wie ich oben beschrieben habe ist das nur eine Ausgabe der Länge. Im Gegensatz dazu ist a[a.length-1] eine Zuweisung, du nimmst die Ausgabe a.length-1 und setzt das Ergebnis davon als Lenge vom Array a[].
Beispiel:
a[5]; //Array deklaration
a.length-1 //Array Länge -1 ausprobieren
a[5] // Ergebnis von dem Bespiel oben
a[a.length] //Array Länge setzen in dem man sich die Array Länge -1 geben lässt (5-1 = 4)
a[4] // Ergebnis des zweiten Bespiels, es würde so nicht zu sehen sein, aber das würde passieren wenn du den Code in dieser Reihenfolge ausführst.
Mfg
TOminerTV
Könntest du mir vielleicht wieder in einer identischen Frage helfen: Was ist der Unterschied zwischen
arr[ i++ ], arr[ i ] und arr[ ++i ] ?
Ich freue mich wieder auf deine Antwort.
Zu dem Inkrement habe ich diesen Satz hier, also du inkrementierst den Counter i auf jeden Fall (array[++i] pre-increments i, then will access array[i]. array[i++] will access array[i] then post-increment i. These are basic cases for pre- and post-increment. You can write a very simple test program to demonstrate this.)
Mit arr[i] greifst du auf das Element beispielsweise ein String.
Alle Fälle funktionieren wie in deiner alten Frage, der Unterschied ist das Counter meistens in Schleifen verwendet werden, wenn du zum Beispiel eine for(int i=0; i <= 10; i++)
Schleife hast, kannst du so auf Elemente des Arrays zugreifen.
a.length ist die Länge des Arrays. D.h. es hat a.length Elemente. Folglich ist a.length-1 die Differenz aus a.length und 1. D.h. raus kommt der Index des letzten Elementes, da der erste Index 0 ist.
ist auch ( a.length - 1; = a[a.length - 1]; ) ? ?