Syntax Error

Status
Nicht offen für weitere Antworten.

totix800

Mitglied
Hi,

ich hab hier en Thread von nem Programm, in dem ich mir nich ergründliche Errors finde. Vielleicht is das ganze ja was ganz banales, aber ich seh spontan nicht woran die Fehler liegen.

Hier erstma der Code. Das ganze is en Liniefolgeprogramm für einen Roboter. Die genauen Errors hab ich unter nochmal aufgelistet.

Code:
package robot;

import java.io.*;
import java.util.*;
import java.awt.*;
import java.awt.image.*;
import javax.imageio.*;
import javax.media.*;
import javax.media.control.*;
import javax.media.format.*; 
import javax.media.util.*;
import com.sun.image.codec.jpeg.*;
import java.awt.Color;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.media.Buffer;
import javax.swing.*;
import icommand.nxt.Sound;
import icommand.nxt.comm.NXTCommand;
import icommand.nxt.*;
import javax.media.protocol.*;

/**
 *
 * @author toti
 */
public class follow_line extends Thread
 {

    private String[] g;

    public int green;
    public int white;
    public int black;
    public int trash;
    public int maxSpeed = 200;
    
    
    public void run() 
    {
        try {
            followline(g);
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
    
    public void followline(String[] args) throws Exception { 
    			System.out.println("whats up?"); 
    			Thread.sleep(20); 
    			BufferedImage img = ImageIO.read(new File("./testimg.jpg")); 
    			Color p[] = new Color[8]; 
    			int colors[] = new int[8]; 
    			for (int i = 0; i < 8; i++) { 
    				p[i] = new Color(img.getRGB((10 + 20 * i), 80)); 
    	 
    				System.out.println(i + ":R: " + p[i].getRed()); 
    				System.out.println(i + ":G: " + p[i].getGreen()); 
    				System.out.println(i + ":B: " + p[i].getBlue()); 
    				// determine color 
    				if (p[i].getBlue() + p[i].getGreen() + p[i].getRed() > 630) 
    					colors[i] = white; 
    				else if (p[i].getBlue() + p[i].getGreen() + p[i].getRed() < 100) 
    					colors[i] = black; 
    				else if ((p[i].getGreen() > 100) && (p[i].getRed() + p[i].getBlue() < 100)) 
    					colors[i] = green; 
    					else 
    						colors[i] = trash; 
    	 
    					// print out colors 
    					if (colors[i] == black) 
    						System.out.println("#" + i + ": black"); 
    					else if (colors[i] == white) 
    						System.out.println("#" + i + ": white"); 
    					else if (colors[i] == green) 
    						System.out.println("#" + i + ": green"); 
    					else if (colors[i] == trash) 
    						System.out.println("#" + i + ": trash"); 
    			} 
    			// calc where black line middle is 
    			float lineLoc = 0; 
    			int beep2 = 0; 
    			for (int i = 0; i < 8; i++) 
    				if (colors[i] == black) { 
    					lineLoc += i; 
    					beep2 += 1; 
    					} 
    			// avg 
    				lineLoc = lineLoc / beep2; 
    				System.out.println(lineLoc); 
    	 
    			// set direction 
    				float a = 0; 
    				if (lineLoc == 3.5) 
    					forward(); 
    				if (lineLoc < 3.5) { // left 
    					if (lineLoc > 3) { 
    						a = 7 / 2 - lineLoc; // 0 < a < .5 (0: maxSpeed, .5: speed = // 0) 
    		 			a = a * maxSpeed * 2; // 0 < a < maxSpeed 
    		 			turn(true, true, maxSpeed - (int) a, maxSpeed); 
    					} else if (lineLoc == 3) 
    						turn(true, true, 0, maxSpeed); 
    					else if (lineLoc < 3) { 
    						a = 3 - lineLoc; // 0 < a <= 3 (0: speed = 0, 3: maxspeed) 
    						a = a * maxSpeed / 3; // 0 < a < maxSpeed 
    						turn(false, true, (int) a, maxSpeed); 
    					} 
    				} 
    				else if (lineLoc > 3.5) { // right 
    					if (lineLoc < 4) { 
    						a = 4 - lineLoc; // 0 < a < .5 (.5: maxSpeed, 0: speed = 0) 
    						a = a * maxSpeed * 2; // 0 < a < maxSpeed 
    						turn(true, true, maxSpeed, (int) a); 
    						} 
    					else if (lineLoc == 4) 
    						turn(true, true, maxSpeed, 0); 
    				else if (lineLoc > 4) { 
    						a = 7 - lineLoc; // 0 < a <= 3 (3: speed = 0, 0: maxspeed) 
    						a = a * maxSpeed / 3; // 0 < a < maxSpeed 
    						turn(true, false, maxSpeed, maxSpeed - (int) a ); 
    	               } 
    	         
    				} 
    	 
    	           
    	     }
   
    private static void go(boolean leftOn2, boolean rightOn2, boolean leftFwd2, boolean rightFwd2, int leftSpeed2, int rightSpeed2) { 
    		// did left motor change? 
    			boolean leftOn;
    			boolean leftFwd;
    			int leftSpeed;
    			boolean rightOn;
    			boolean rightFwd;
    			int rightSpeed;
    			if( (leftOn2 != leftOn) || (leftFwd2 != leftFwd) || (leftSpeed2 != leftSpeed) ) { 
    				if(leftOn2) { 
    					if(leftFwd2) 
    						Motor.A.forward(); 
    					else 
    						Motor.A.backward(); 
    						Motor.A.setSpeed(leftSpeed2);
    						} 
    					else Motor.A.stop(); 
    				} 
    					leftOn2 = leftOn; 
    					leftFwd2 = leftFwd; 
    					leftSpeed2 = leftSpeed; 
    	// did right motor change? 
			if( (rightOn2 != rightOn) || (rightFwd2 != rightFwd) || (rightSpeed2 != rightSpeed) ) { 
					if(rightOn2) { 
						if(rightFwd2) 
							Motor.C.forward(); 
						else 
							Motor.C.backward(); 
							Motor.C.setSpeed(rightSpeed2);
							} 
						else Motor.C.stop(); 
    	
						rightOn2 = rightOn; 
						rightFwd2 = rightFwd; 
						rightSpeed2 = rightSpeed; 
    	          } 
    	     } 
    		private static void halt() { 
    			go(false, false, true, true, 0,0); 
    	     } 
    		private static void forward() { 
    			go(true, true, false, false, 200, 200); 
    	     }
    		private static void turn(boolean leftFwd2, boolean rightFwd2, int speedLeft2, int speedRight2) { 
    			go(true, true, leftFwd2, rightFwd2, speedLeft2, speedRight2); 
    	     }
    		
 
    
    
}


[/quote]


Zeile 121: Syntax error, insert "}" to complete Block
Zeile 163: Syntax error, insert ";" to complete Statement
Zeile 167: Syntax error, insert ";" to complete Statement
Zeile 170: Syntax error, insert ";" to complete Statement
Zeile 173: Syntax error, insert ";" to complete Statement



Ich steh da vor einem Rätsel. Ich weiss nich wo und warum ich dort eine Klammer bzw. ein Simikolon einfügen soll. Kann mir jemand von Euch sagen, was da falsch is, ich verstehs wirklich nicht.


Gruß toti
 
Hallo toti,

also es stimmt schon das man die verkürzte Variante von einer If-else-Struktur ohne Klammern schreiben KANN aber nicht SOLLTE. Es kommen dann genau die Probleme die du jetzt hast, bedenke alle Klammerlosen If-else-Strukturen verlangen eine einzeilige Anweisung das hast du auch bedacht, in den meisten Fällen, aber anscheinend nicht in allen.
Es ist eben nicht Chick oder Designtechnisch Unklug sich solcher verkürzten Schreibweisen zu bemächtigen. Ich würde dir empfehlen IMMER egal wie lächerlich es erscheint immer
if {
....
}
else {
...
}
zu schreiben es ist einfacher den Code zu warten. Sobald du den Klammerfehler gelöst hast sollten sich die Kommatafehler auch in Luftauflösen, wenn nicht meld dich doch einfach wieder.

Gruß vom Don
 

totix800

Mitglied
Hi,

ich hab jetzt mal überall die if/else statements mit Klammern umschlossen, genau das selbe Problem besteht aber weiterhin.
Gibts vielleicht noch ne andere Möglichkeit, woran es liegen könnte?

Gruß toti
 

André Uhres

Top Contributor
Wenn ich die 6 Variablen zu Beginn von der Methode "go(..)" initialisiere, dann kompiliert es:
Code:
    private static void go(boolean leftOn2, boolean rightOn2, boolean leftFwd2, boolean rightFwd2, int leftSpeed2, int rightSpeed2) {
        // did left motor change?
        boolean leftOn = false;
        boolean leftFwd = false;
        int leftSpeed = 0;
        boolean rightOn = false;
        boolean rightFwd = false;
        int rightSpeed = 0;
...
Ich habe allerdings die Zeilen auskommentiert, die "Motor" enthalten, weil ich die Klasse nicht habe.
Desgleichen habe ich einige imports auskommentiert:
Code:
//import javax.media.*;
//import javax.media.control.*;
//import javax.media.format.*;
//import javax.media.util.*;
//import javax.media.Buffer;
//import icommand.nxt.Sound;
//import icommand.nxt.comm.NXTCommand;
//import icommand.nxt.*;
//import javax.media.protocol.*;
 

totix800

Mitglied
Hi,

ich hab es gerade ma ausprobiert, bei mir is das leider nicht der Fall. Die oben genannten Fhler bleiben. Irgendwie werd ich da voll kirre.

Gruß toti
 
G

Guest

Gast
André hat dir schon die Fehler aufgezeigt. Wenn irgendwo Klammern fehlen, dann nicht in diesem Code.

Ansonsten

1) Immer Klammern verwenden (insbesondere bei Schleifen)
2) Code vernünftig formattieren und kommentieren.
2) Methoden vereinfachen bzw. aufteilen. Die Logik ist zu komplex (Cyclomatic complexity > 21, NPath complexity > 1000!),
um den Überblick noch zu behalten. Von zu viel Logik kotzt sogar ein Vulkanier. ;)
 
G

Guest

Gast
Womit entwickelst du das ganze? Hol dir am besten Eclipse und öffne den Code damit, dann siehst du sofort
alle Syntaxfehler.
 

totix800

Mitglied
Hi,

ja, mit eclipse hab ich das ganze bis jetzt schon gemacht, sonst wär ich mir auch nich so sicher, dass es da keine Klammern fehlen. Die sind meines Achtens wirklich alle richtig. Ecliipse unterstreicht mir aber in den oben genannten Zeilen immer die letze Klammer mit den ebenfall oben genannten Errors.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Syntax Error, der keiner sein sollte Allgemeine Java-Themen 12
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
Zrebna OutOfMemory-Error beim Build in der CI-Pipeline Allgemeine Java-Themen 5
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

Ähnliche Java Themen


Oben