Syntax Error, der keiner sein sollte

Status
Nicht offen für weitere Antworten.

Rock Lobster

Bekanntes Mitglied
Servus,

mir ist vorhin was aufgefallen, könnt ihr ja mal selbst probieren:

Code:
for(int i=0; i<10; i++)
    String s = "i = " + i;
-> Syntax Error


Code:
for(int i=0; i<10; i++)
{
    String s = "i = " + i;
}
-> kompiliert (aber natürlich mit "unused"-Warning)


Mir ist klar daß obiger Code in dieser Form wenig Sinn ergibt, aber syntaktisch gesehen sollten beide Code-Schnipsel dasselbe bedeuten.
Gerade wenn ein Formatter z.B. die Klammern entfernt (so war es in meinem Fall), dann tritt plötzlich ein Fehler im Code auf, wo eigentlich keiner ist.

Kann bzw. sollte man das irgendwo im Sun-Forum posten?
 
S

SlaterB

Gast
wenn de Formatter von Sun kommt, dann ja,
ansonsten nicht, denn das ist ein Fehler des Formatters,

dass eine sinnlose Variablendeklaration verboten ist, finde ich gut


edit:

man könnte noch bemängeln,
dass bei

for(int i=0; i<10; i++)
{
String s = "i = " + i;
}
nicht der gleiche Fehler kommt, dann nicht von der Syntax her sondern nach höheren Regeln
 

Ice-Tea

Bekanntes Mitglied
Ebend weil der Obige Code so wenig sinn macht bekommst du einen Syntaxfehler ;)


Funktionieren sollte es so:

Code:
        String s;
        for(int i=0; i<10; i++)
           s = "i = " + i;
 

Rock Lobster

Bekanntes Mitglied
Wieso ein Fehler des Formatters?

Und sinnlose Variablendeklarationen sind normalerweise nicht verboten, sondern es gibt nur eine "unused"-Warning. Wenn das also der Grund WÄRE, dann wäre das ein sehr inkonsistentes Verhalten, und daher kann das niemals der Grund sein.
 

Rock Lobster

Bekanntes Mitglied
@ Ice-Tea: Dann müßte der zweite Code aber genauso einen "Syntax-Fehler" ergeben. Kann also nicht daran liegen.

Unter C funktioniert das tadellos.
 

Ice-Tea

Bekanntes Mitglied
Genau wisse tue ich es zwar nicht aber ich möchte mal behaupten das der compiler daraus zwei zeilen erstellt und deshalb einen block braucht:
Code:
for(int i=0; i<10; i++)
    String s=null
    s = "i = " + i;
würde nämlich auch nicht fnktionieren
 

Rock Lobster

Bekanntes Mitglied
SlaterB hat gesagt.:
edit:

man könnte noch bemängeln,
dass bei

for(int i=0; i<10; i++)
{
String s = "i = " + i;
}
nicht der gleiche Fehler kommt, dann nicht von der Syntax her sondern nach höheren Regeln

Jo, aber da kommt eben nur die Warning. Obwohl es syntaktisch eigentlich gleich sein sollte. Aber wenn es, wie Marco13 gepostet hat, klare Regeln für das Setzen einer lokalen Variablendefinition gibt, dann ist das natürlich entscheidender als die Regel, daß ein "Einzelstatement" sowohl mit als auch ohne Klammern gebaut werden kann.
 

Rock Lobster

Bekanntes Mitglied
Ice-Tea hat gesagt.:
Genau wisse tue ich es zwar nicht aber ich möchte mal behaupten das der compiler daraus zwei zeilen erstellt und deshalb einen block braucht:
Code:
for(int i=0; i<10; i++)
    String s=null
    s = "i = " + i;
würde nämlich auch nicht fnktionieren
Das ist richtig, aber bevor compiliert wird, wird schätzungsweise erstmal geparst, und der Parser dürfte damit EIGENTLICH kein Problem haben (weil dieser die Zeile sicherlich noch nicht in die obigen zwei Teile aufspaltet). Aber er befolgt halt die von Marco13 angesprochene Regel, von daher logisch.
 

Leroy42

Top Contributor
Marco13 hat gesagt.:
http://java.sun.com/docs/books/jls/third_edition/html/statements.html#5920

Ein LocalVariableDeclarationStatement darf nur(?) in einem Block auftauchen, und ein Block besteht aus { und }, und zwischendrin BlockStatements....

Genau!

Die Java Language Specification ist für mich immer noch Der Maßstab

:applaus:
 

didjitalist

Bekanntes Mitglied
die defintion ist eigentlich andersherum. ein for statement darf nur eine statement enthalten. und ein LocalVariableDeclarationStatement ist trotz des namens kein statement, ein block aber schon.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Syntax Error Allgemeine Java-Themen 9
S Syntax Error, insert "AssignmentOperator Expression&amp Allgemeine Java-Themen 3
B Syntax error on token ,VariableDeclaratorId expected after. Allgemeine Java-Themen 3
Tommy135 Syntax Highlighting Allgemeine Java-Themen 3
Elyt Compiler-Fehler Datei kann nicht erstellt werden. Die Syntax für den Dateinamen etc. ist falsch. Allgemeine Java-Themen 2
W JavaCC to create my only syntax Allgemeine Java-Themen 5
B Syntax-Erkennungs Problem Allgemeine Java-Themen 2
H Syntax ProcessBuilder Allgemeine Java-Themen 7
B Syntax-Highlighting abspeichern Allgemeine Java-Themen 7
T Parseerror bei richtiger Syntax Allgemeine Java-Themen 5
M Syntax Highlighter für MS Word? Allgemeine Java-Themen 2
H Pattern.compile Syntax Allgemeine Java-Themen 15
S Mail Adressen Syntax prüfen Allgemeine Java-Themen 22
C Syntax printf Allgemeine Java-Themen 5
S Eine Collection von Objekten mit LDAP Syntax filtern Allgemeine Java-Themen 5
P JTextPane mit Java (eclipse) Syntax Highlighting Allgemeine Java-Themen 4
D Kompakte Syntax für Funktionen Allgemeine Java-Themen 7
G Syntax für den Dateinamen Allgemeine Java-Themen 1
G Java Syntax Allgemeine Java-Themen 7
F Plugin damit M$ Word Java syntax versteht? Allgemeine Java-Themen 12
D Die <> Syntax Allgemeine Java-Themen 8
W Syntax - Frage Allgemeine Java-Themen 6
padde479 jEdit Syntax Highlighting Allgemeine Java-Themen 3
G Syntax-Fehler beim aufrufen von generischen Klassenmethoden Allgemeine Java-Themen 4
V syntax problem Allgemeine Java-Themen 6
F log4j XML-Syntax Allgemeine Java-Themen 4
G Syntax Übersicht Suche Allgemeine Java-Themen 7
A gültige syntax einer ip-adresse? Allgemeine Java-Themen 2
S java syntax zusammenfassung Allgemeine Java-Themen 1
G IOException error 2 Allgemeine Java-Themen 3
urmelausdemeis Exception in thread "main" java.lang.Error: Unresolved compilation problem: Allgemeine Java-Themen 7
Mick P. F. Wie kriege ich die Fehlermeldung "java: symbol lookup error: ..." weg? Allgemeine Java-Themen 11
S An internal error occurred during: Launching null argument Allgemeine Java-Themen 1
S Gradle "schluckt" output und error Allgemeine Java-Themen 1
Bluedaishi Access violation error Allgemeine Java-Themen 2
M Jdeps-Error durch multi-release Allgemeine Java-Themen 6
Xge For/Array Error: IndexOutOfBounds Allgemeine Java-Themen 4
S CMD Compiler Error Allgemeine Java-Themen 13
L Compiler-Fehler Eclipse Error: A JNI error has occured Allgemeine Java-Themen 3
T Eclipse IDE Plugin Error Log Allgemeine Java-Themen 0
Robat JNI - Fatal Error Allgemeine Java-Themen 5
S LinkedList Error Allgemeine Java-Themen 4
F String Error Allgemeine Java-Themen 7
K Error Allgemeine Java-Themen 2
G Error Meldung bei Gomoku Spiel Allgemeine Java-Themen 9
J LWJGL 3 Error Code 1282 Allgemeine Java-Themen 4
N Maven ObjectMapper Error wenn das File gespeichert wird Allgemeine Java-Themen 0
D Datentypen Cache Images Heap Space Error Allgemeine Java-Themen 7
D Java Error String kann nicht in Int umgewandelt werden Allgemeine Java-Themen 2
L Exception/Error auf JDialog umleiten Allgemeine Java-Themen 2
G Java Error (Exception_acces_violation) Allgemeine Java-Themen 2
G Java Error (Exception_acces_violation) Allgemeine Java-Themen 0
Thallius Simple JSON Parser Error null Allgemeine Java-Themen 6
F Compiler-Fehler Hilfe bei Startup error Allgemeine Java-Themen 3
M List casting error Allgemeine Java-Themen 3
F Java Error, bei Installation, Start und dem Control Panal Allgemeine Java-Themen 8
A ausführbare jar Error Allgemeine Java-Themen 2
F Error Logging - best practices? Allgemeine Java-Themen 3
P JDK installieren Error: Could not find or load main class HelloWorld.java Allgemeine Java-Themen 3
D Java error Allgemeine Java-Themen 2
J JVM Launcher Error Allgemeine Java-Themen 30
Jats Programm mit CMD Befehl hängt sich auf oder gibt error = 5 aus Allgemeine Java-Themen 4
I Java Ordner kopieren [Error] Allgemeine Java-Themen 6
G OutOfMemory Error bei Zahlenkonvertierungsprogramm Allgemeine Java-Themen 5
Jats ArrayList-Error Index: 1 Size:1 - Bitte um Hilfe Allgemeine Java-Themen 36
B Fatal error der JVM Allgemeine Java-Themen 9
N xml fatal error umgehen Allgemeine Java-Themen 14
M Webservice mit Axis2 und Eclipse - Error Allgemeine Java-Themen 2
S JNI - Fatal Error Allgemeine Java-Themen 2
D Java Heap error trotz anpassungen mit -xmx Allgemeine Java-Themen 4
R VM-Error - BadWindow (invalid Window parameter) Allgemeine Java-Themen 4
F Look And Feel Error Allgemeine Java-Themen 30
B Java OutOfMemory Error verhindern, Resourcenbedarf präventiv abschätzen? Allgemeine Java-Themen 19
X Error bei der Programmierung eines Sortieralgorithmus Allgemeine Java-Themen 2
B maven 2 error bei plugin download Allgemeine Java-Themen 7
hdi Heap Sapce Error bei sehr großem String Allgemeine Java-Themen 5
D Java Error / Fehler Allgemeine Java-Themen 2
A JNI unsatisfied linker error Allgemeine Java-Themen 2
S Error aus der Konsole auslesen Allgemeine Java-Themen 2
G Text aus Zwischenablage in JTextarea -> JDBC Error Allgemeine Java-Themen 3
A Synatx Error, wo gar keiner ist ? Allgemeine Java-Themen 2
B JMF Installations Error Allgemeine Java-Themen 2
O java StreamCorrupted Error beim Belegen einer JTextpane Allgemeine Java-Themen 5
R Speicherprobleme (OutOfMemory Error) Allgemeine Java-Themen 26
J Fatal Error Allgemeine Java-Themen 8
G Error: Hashtable Type safety: The method put(Object, Object) Allgemeine Java-Themen 6
J "Empty-String" Error Allgemeine Java-Themen 6
W Runtime Error216 Runtime error 217 Allgemeine Java-Themen 6
J Interpreteraufruf bring Error obwohl dies nicht sein dürfte. Allgemeine Java-Themen 24
G Error: java.lang.OutOfMemoryError: Java heap space Allgemeine Java-Themen 2
T Konsole "Fehlermeldung": error hereerror here Allgemeine Java-Themen 4
M typecast error Allgemeine Java-Themen 14
R Problemchen (unexpected error) Allgemeine Java-Themen 2
K error=2 (Datei nicht gefunden) - Datei ist aber da! Allgemeine Java-Themen 10
B unchecked cast Error Allgemeine Java-Themen 2
H java heap space (outofmemory error) Allgemeine Java-Themen 3
I Error: Unable to realize com.sun.media.amovie.AMController Allgemeine Java-Themen 3
M JButton verursacht einen HeapSpace Error? Allgemeine Java-Themen 6
F Jar mit Abhängigkeiten ausführen -> NoClassDefFound Error Allgemeine Java-Themen 16
M strange error Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben