• Wir präsentieren Dir heute ein Stellenangebot für einen Java Entwickler - m/w/d in Augsburg, München, Stuttgart oder Bamberg. Hier geht es zur Jobanzeige

For Schleife/ArrayList

M

Maxel33

Mitglied
Heyy, warum kann ich die eingabe, eingabe1, eingabe2 nicht aus der for-Schleife übernehmen?

Unbenannt.PNG
 
M

M.L.

Top Contributor
Auf die Schnelle: weil die Variablen eingabe... ausserhalb der Schleife nicht bekannt sind (Stichwort: Scope)
 
M

Maxel33

Mitglied
Auf die Schnelle: weil die Variablen eingabe... ausserhalb der Schleife nicht bekannt sind (Stichwort: Scope)
Dankeschön für die schnelle Antwort. Habe ich mir auch bald gedacht. Also sind die Variablen innerhalb einer Schleife nur für die Schleife bestimmt? Habe ich eine Möglichkeit diese auch außerhalb noch zu verwenden?
 
MoxxiManagarm

MoxxiManagarm

Top Contributor
PS.: Einen Scanner von System.in zu schließen ist nicht unbedingt ratsam, es ist eine Resource der JVM und du wirst auf Probleme stoßen, falls du nochmal von System.in lesen wollen würdest.
 
mihe7

mihe7

Top Contributor
Also sind die Variablen innerhalb einer Schleife nur für die Schleife bestimmt?
Es ist "noch schlimmer": eine Variable hat nur innerhalb des Blocks (und aller darin befindlichen Blöcke), in dem sie deklariert wurde, Gültigkeit. Innerhalb von Methoden spielt außerdem die Stelle der Deklaration im Code eine Rolle.
 
1

123neu

Bekanntes Mitglied
Dankeschön für die schnelle Antwort. Habe ich mir auch bald gedacht. Also sind die Variablen innerhalb einer Schleife nur für die Schleife bestimmt? Habe ich eine Möglichkeit diese auch außerhalb noch zu verwenden?
Der Scope gilt ab der Deklaration bis zum Ende des umgebenen Blocks. Du wirst also nicht umhinkommen deiner Variablen eine größere Sichtbarkeit zu spendieren.
 
F

fhoffmann

Top Contributor
Einfache Regel: schließe nichts, was Du nicht selbst geöffnet hast.
So einfach finde ich die Regel nicht. Es wird ja (vordergründig) nur der Scanner geschlossen, der auch selber erzeugt wurde. Man muss dann schon wissen, dass beim Schließen des Scanners automatisch auch der benutzte Stream (System.in) geschlossen wird.

@Maxel33:
Es ist sicherlich wichtig, dass du den Gültigkeitsbereich ("scope") von Variablen verstehst.
Ich frage mich aber, wozu du die for-Schleife mit den if-Abfragen benötigst. Das geht doch auch ohne!

Und du solltest die Variablenname ("eingabe", "eingabe1" und "eingabe2") überdenken; warum nennst du sie nicht "name", "strasse" und "ort"?
 
mihe7

mihe7

Top Contributor
Man muss dann schon wissen, dass beim Schließen des Scanners automatisch auch der benutzte Stream (System.in) geschlossen wird.
Bin gerade etwas hin- und hergerissen. Auf der einen Seite stimmt das natürlich, auf der anderen Seite sollte man schon wissen, was der Code macht, den man schreibt.

So wie ich weiß, dass System.out.println etwas über die Standardausgabe ausgibt, muss ich halt auch wissen, dass das Schließen des Scanners den verwendeten Stream schließt. Das ist alles dokumentiertes Verhalten.

Weiß ich dagegen, dass das Schließen des Scanners auch den Stream schließt, bringt mir das erstmal nicht viel. Hier greift dann eben die Regel, nichts zu schließen, was man nicht selbst geöffnet hat.

Alles dann doch nicht so einfach :)
 
M

Maxel33

Mitglied
Bin gerade etwas hin- und hergerissen. Auf der einen Seite stimmt das natürlich, auf der anderen Seite sollte man schon wissen, was der Code macht, den man schreibt.

So wie ich weiß, dass System.out.println etwas über die Standardausgabe ausgibt, muss ich halt auch wissen, dass das Schließen des Scanners den verwendeten Stream schließt. Das ist alles dokumentiertes Verhalten.

Weiß ich dagegen, dass das Schließen des Scanners auch den Stream schließt, bringt mir das erstmal nicht viel. Hier greift dann eben die Regel, nichts zu schließen, was man nicht selbst geöffnet hat.

Alles dann doch nicht so einfach :)
Naja es wird sonst bei mir gelb unterstrichen
 
mihe7

mihe7

Top Contributor
Naja es wird sonst bei mir gelb unterstrichen
Ja, Du wirst gewarnt, was so viel heißt wie: hier ist was, was in der Regel anders aussieht, schau Dir das bitte genauer an. Eine solche Warnung spuckt z. B. der Eclipse-Compiler (der OpenJDK-Compiler dagegen nicht) aus, wenn ein Closeable nicht geschlossen wird.

Die Warnung ist im Grundsatz auch richtig, nur muss in diesem konkreten Fall nichts getan werden, weil das Schließen des Scanners halt auch System.in schließt und System.in eben ein Stream ist, den Du nicht geöffnet hast.

Für den Eclipse-Compiler kannst Du die betreffende Methode mit @SuppressWarnings("resource") annotieren, dann dürfte die Warnung an der Stelle nicht mehr auftauchen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Objekte zur Laufzeit in Schleife erzeugen und in ArrayList ablegen Java Basics - Anfänger-Themen 4
S Gespeichertes aus ArrayList laden mithilfe der For-Schleife Java Basics - Anfänger-Themen 12
C Methoden Objekte mit Hilfe einer Schleife in einer ArrayList erzeugen Java Basics - Anfänger-Themen 26
S for-Schleife mit ArrayList Java Basics - Anfänger-Themen 2
M Objekte mit Schleife in ArrayList erstellen? Java Basics - Anfänger-Themen 6
C Erstes Arraylist Element in for Schleife überspringen Java Basics - Anfänger-Themen 6
P ArrayList, iterator: Fehler in while Schleife Java Basics - Anfänger-Themen 2
S Schleife funktioniert nicht Java Basics - Anfänger-Themen 2
OZAN86 Methoden for schleife Java Basics - Anfänger-Themen 3
G --i versus i++ in for-Schleife Java Basics - Anfänger-Themen 11
OZAN86 For Schleife von 1-50 die Zahlen werden durch ein Komma getrennt Java Basics - Anfänger-Themen 10
M Wie kann ich Werte die in einer While Schleife sind weiter genutzt werden? Java Basics - Anfänger-Themen 7
T for-each-Schleife, verschiedene Datentypen Java Basics - Anfänger-Themen 1
T Methode um Array mit for-each-Schleife auszulesen Java Basics - Anfänger-Themen 7
Jana01 Schleife Java Basics - Anfänger-Themen 12
H Kann eine while-Schleife ein Programm blockieren? Java Basics - Anfänger-Themen 8
D For Schleife Java Basics - Anfänger-Themen 8
D Doppelte For Schleife / Array Java Basics - Anfänger-Themen 3
TimoN11 Array -> Schleife wieder von vorne durchlaufen lassen Java Basics - Anfänger-Themen 1
O Methode in while-Schleife aufrufen geht nur beim ersten Mal Java Basics - Anfänger-Themen 2
T Variable in for Schleife ansprechen ohne Array ? Java Basics - Anfänger-Themen 25
M log4j als separate Dateien in Schleife? Java Basics - Anfänger-Themen 6
A Wie schaffe ich das eine while Schleife addiert danach subtrahirt? Java Basics - Anfänger-Themen 1
HoT verschiedene ArrayLists mit ähnlichem Namen in for-Schleife aufrufen Java Basics - Anfänger-Themen 3
U Problem mit dem initialisieren meines Strings in einer Schleife Java Basics - Anfänger-Themen 5
Khaled-Abo Ziffern unterscheiden mittels einer For-Schleife Java Basics - Anfänger-Themen 6
Tino1993 for-Schleife, die eine vorgegebene Anzahl von Zeichen ausgibt Java Basics - Anfänger-Themen 3
T Bestimmte Zahlen ausgeben mit einer whilfe Schleife Java Basics - Anfänger-Themen 21
J for /while Schleife Java Basics - Anfänger-Themen 5
A While Schleife - buubelsort methode Java Basics - Anfänger-Themen 2
A eine neue normale String-Array von einer String-Array, die in for schleife ist, schaffen Java Basics - Anfänger-Themen 3
DorFey Schrittweises abändern des GUI während for-Schleife / pausieren einer for-Schleife Java Basics - Anfänger-Themen 3
P Bedingung in Schleife wird nicht ausgeführt Java Basics - Anfänger-Themen 5
J Wie kann ich hier eine While schleife einbauen? Java Basics - Anfänger-Themen 3
S While-Schleife geht in Endlosschleife über, warum? Java Basics - Anfänger-Themen 6
K Erste Schritte Programm geht aus Schleife, warum? Java Basics - Anfänger-Themen 2
N for Schleife durch Rekursion ersetzen Java Basics - Anfänger-Themen 6
N Probleme beim printen von Arrays durch for Schleife Java Basics - Anfänger-Themen 3
I Java zweidimensionales array befüllen mit for-schleife Java Basics - Anfänger-Themen 2
S Do-While-Schleife Java Basics - Anfänger-Themen 2
S While Schleife Java Basics - Anfänger-Themen 4
KogoroMori21 Mit einer Schleife eine Treppe zeichnen Java Basics - Anfänger-Themen 29
S Do-While Schleife Java Basics - Anfänger-Themen 6
T Programm Schleife/if Java Basics - Anfänger-Themen 2
S for-Schleife wird ignoriert Java Basics - Anfänger-Themen 15
L String in Do-While-Schleife Abbruchkriterium Java Basics - Anfänger-Themen 1
S Variablen Variablen in einer Schleife erstellen lassen Java Basics - Anfänger-Themen 11
tom.j85 Doppelte Foreach Schleife: Am Ende wird immer das Gleiche Objekt eingefügt Java Basics - Anfänger-Themen 4
J Apache Poi - createCell() Methode akzeptiert keinen Index aus for-schleife als Parameter Java Basics - Anfänger-Themen 4
A Summe des Arrays pd mit alternativer Schleife Java Basics - Anfänger-Themen 2
T Ausgabe einer for Schleife Java Basics - Anfänger-Themen 2
J Abbruchbedingung in Schleife/ Untersuchung von Strings Java Basics - Anfänger-Themen 2
M Ist es möglich, das größte und zweitgrößte element in einem Array mit nur einer Schleife ausfindig zu machen ? Java Basics - Anfänger-Themen 19
UnknownInnocent Methoden While-Schleife so lange ausführen, wie Methode etwas zurückgibt Java Basics - Anfänger-Themen 2
P geschachtelte Schleife mit Strings Java Basics - Anfänger-Themen 2
V Erste Schritte Potenzen b^n mittels Schleife ermitteln Java Basics - Anfänger-Themen 7
T DoWhile Schleife über mehrere Mothoden Java Basics - Anfänger-Themen 5
ZH1896ZH Datentypen Error bei For-Schleife Java Basics - Anfänger-Themen 2
G Programm mit Schleife funktioniert nicht Java Basics - Anfänger-Themen 5
H For-Schleife für 60 sekunden laufen lassen Java Basics - Anfänger-Themen 1
G For Schleife-Basic Java Basics - Anfänger-Themen 11
V Erste Schritte for-Schleife; Ausgabe soll alle 5 Sekunden erfolgen. Java Basics - Anfänger-Themen 4
S Hilfe bei meinem Code [Schleife]? Java Basics - Anfänger-Themen 5
S Unbedingte hilfe bei Java Aufgabe [Schleife / Zinsrechnung] Java Basics - Anfänger-Themen 14
B Berechnung zu einer Schleife formen Java Basics - Anfänger-Themen 6
B Verschachtelung von For-Schleife in While Schleife Java Basics - Anfänger-Themen 14
V Wie lasse ich die for-Schleife so oft laufen wie per Scanner angegeben? Java Basics - Anfänger-Themen 3
V Wie wiederhole ich eine for-Schleife beim erreichen eines Wertes Java Basics - Anfänger-Themen 9
G while schleife Java Basics - Anfänger-Themen 11
G while schleife mit array Java Basics - Anfänger-Themen 12
Henri Anpassung ein Schleife(Zuweisung eines Ordners) Java Basics - Anfänger-Themen 0
Henri Anpassung ein Schleife(Zuweisung eines Ordners) Java Basics - Anfänger-Themen 27
V Schleife für das Einlesen von Werten für int Variablen, die Bestandteil von Arrays sein sollen Java Basics - Anfänger-Themen 16
L Scanner schließen in While-Schleife? Java Basics - Anfänger-Themen 2
N Schleife für ein Würfelspiel Java Basics - Anfänger-Themen 10
G While schleife Java Basics - Anfänger-Themen 2
B Schleife von anderer Methode stoppen? (Start continue) Java Basics - Anfänger-Themen 18
F ForEach Schleife Java Basics - Anfänger-Themen 1
S For-Schleife in For-Schleife Java Basics - Anfänger-Themen 10
J Mit for Schleife einen String Rückwärts befüllen Java Basics - Anfänger-Themen 9
mor16Euro Erste Schritte Wie nennt man eine While oder For schleife die nie Ausgeführt wird Java Basics - Anfänger-Themen 5
K Return in Schleife Java Basics - Anfänger-Themen 4
F Abbruchbedingung einer For-Schleife Java Basics - Anfänger-Themen 5
W for Schleife in allgemeingültiges Konstrukt aus Stream und Lambdas Java Basics - Anfänger-Themen 6
R for schleife ohne klammer Java Basics - Anfänger-Themen 14
R For-Schleife Java Basics - Anfänger-Themen 5
C Verständnisfrage bezüglich der Do-While Schleife Java Basics - Anfänger-Themen 9
S Verschachtelte Schleife Java Basics - Anfänger-Themen 3
B OOP While Schleife läuft Endlos durch externen aufruf Java Basics - Anfänger-Themen 2
O BufferedReader - Endlos Schleife Java Basics - Anfänger-Themen 2
F Warum verläuft DIESE Schleife endlos? Java Basics - Anfänger-Themen 4
F Primzahlsuche Schleife funktioniert nicht, HILFE! Java Basics - Anfänger-Themen 8
N while Schleife wird nicht beendet, obwohl Sie hätte breaken sollen Java Basics - Anfänger-Themen 4
M Unendliche schleife Java Basics - Anfänger-Themen 7
B mehrere Werte mit scanner und while schleife einlesen, max berechnen bzw addieren Java Basics - Anfänger-Themen 2
O Wert in einer Schleife unterschiedlich erhöhen Java Basics - Anfänger-Themen 2
D While Schleife bei Bedarf durch Eingabe stoppen Java Basics - Anfänger-Themen 15
L Doppelte Schleife Anpassen Java Basics - Anfänger-Themen 5
S werte von objekten in schleife verändern Java Basics - Anfänger-Themen 14
A Erste Schritte Hilfe für for-Schleife Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Anzeige

Neue Themen


Oben