Error: Syntax error, insert "while ( Expression )

K

Kleenaa

Hallo Leutz,
war vor langer Zeit auch schon mal hier wegen einem Problem, jetzt hab ich ne Frage zu meinem Code,
bekomme immer einen error "Syntax error, insert "while ( Expression ) ;" to complete DoStatement" das steht hinter meiner geschweiften Klammer.
Der Code ist:

Java:
import javax.swing.JOptionPane;

 

public class SchulaufgabenTestgepimpt

{ 

      private static Object myInt;
	private static String myString;

	public static void main (String args [])

      {

            String text = "A*R.ProductionS";

                  for(int i = 1; i<2; i++)

                  {

                        for(int j = 1; j<3;j++)

                        {

                        if(j==2)

                        {

                             text = text + "Test";

                        }

                        }

      text = text + "Code";

      }

      System.out.println(text); 
      
      
      
         int Laenge;
         boolean Falscheingabe;
         
      do { 
    	  Falscheingabe = false;
    	  String RohrlängeCM = JOptionPane.showInputDialog("Bitte die Rohrlänge in CM angeben");
    	  try{
          Laenge=Integer.parseInt(RohrlängeCM);
    	  } catch (Exception e){
    	     JOptionPane.showMessageDialog(null, "Fehleingabe");
        	 Falscheingabe = true;
    	  }
          while(Falscheingabe == true); 
     
    	  
    	  
      
      int Breite;
              Falscheingabe = false;
          	  String RohrbreiteCM = JOptionPane.showInputDialog("Bitte die Rohrbreite in CM angeben");
          	  try{
              Breite=Integer.parseInt(RohrbreiteCM);
          	  } catch (Exception e){
          		  JOptionPane.showMessageDialog(null, "Fehleingabe");
              	  Falscheingabe = true;
          	  }
              while(Falscheingabe == true); 
 	    	  
 	    	  
 	    	  
            
            int Verschnitt;
                	  Falscheingabe = false;
                	  String RohrverschnittCM = JOptionPane.showInputDialog("Bitte den Rohrverschnitt in CM angeben");
                	  try{
                      Verschnitt=Integer.parseInt(RohrverschnittCM);
                	  } catch (Exception e){
                		  JOptionPane.showMessageDialog(null, "Fehleingabe");
                    	  Falscheingabe = true;
                	  }
                	  while (Falscheingabe == true); 
                   
                  
      
      
                  int Rest;
                      	  Falscheingabe = false;
                      	  String RohrrestCM = JOptionPane.showInputDialog("Bitte den Rohrrest in CM angeben");
                      	  try{
                           Rest=Integer.parseInt(RohrrestCM);
                      	  } catch (Exception e){
                      		  JOptionPane.showMessageDialog(null, "Fehleingabe");
                          	  Falscheingabe = true;
                      	  }
                         while(Falscheingabe == true); 
                         
                         
       
      System.out.println(Laenge);
      System.out.println(Breite);
      System.out.println(Verschnitt);
      System.out.println(Rest);
      
     
      try {
    	    myInt = Integer.parseInt(myString);
    	}
      
    		catch(NumberFormatException e) {    		    		
    			
    		System.out.println("Erfolgreiche Eingabe. Vielen Dank!"); 
    	    	      		            }
  
      
}
}
}

hoffe das jemand nen Vorschlag oder eine Lösung hat, also in eclipse hab ich das gemacht :).

Danke schon mal :)

lg
Hansi

Code wird bei zeile 118 rot unterstrichen und da is der error..
thx
 
Hallo,

wie schon im letzten Thread totales Chaos.

Die Syntax einer do-while-Schleif ist:


do{

} while ();

Das ist der Fehler. Hinter der Klammer in Zeil 118 muss dein while kommen.
 
Moin,

wie die Fehlermeldung schon besagt, fehlt augenscheinlich die "while"-Bedingung der "do-while"-Schleife !

Wenn ich das richtig sehe, fehlt in Zeile 98 die schließende geschweifte Klammer vor dem
while(Falscheingabe == true);

Versuche ruhig auf eine saubere Formatierung/Einrückung zu achten, dann vermeidest Du solche (Flüchtigkeits-)Fehler

Gruß
Klaus

EDIT: oops, Frank war schneller ... mal schauen, wer Recht hat ... :)
 
Zuletzt bearbeitet:
Hallo,

da haben wir wohl beide recht. Ich habe den Code jetzt nicht auf Sinn überprüft. Wo er die do-.while schließen will muss er selber wissen.
Es gibt ja auch zwei while() Anweisungen.
 
Danke für die schnellen antworten also habs jetzt so gemacht mit while und so

Java:
import javax.swing.JOptionPane;

 

public class SchulaufgabenTestgepimpt

{ 

      private static Object myInt;
	private static String myString;

	public static void main (String args [])

      {

            String text = "A*R.ProductionS";

                  for(int i = 1; i<2; i++)

                  {

                        for(int j = 1; j<3;j++)

                        {

                        if(j==2)

                        {

                             text = text + "Test";

                        }

                        }

      text = text + "Code";

      }

      System.out.println(text); 
      
      
      
         int Laenge;
         boolean Falscheingabe;
         
      do { 
    	  Falscheingabe = false;
    	  String RohrlängeCM = JOptionPane.showInputDialog("Bitte die Rohrlänge in CM angeben");
    	  try{
          Laenge=Integer.parseInt(RohrlängeCM);
    	  } catch (Exception e){
    	     JOptionPane.showMessageDialog(null, "Fehleingabe");
        	 Falscheingabe = true;
    	  }
          while(Falscheingabe == true); 
     
    	  
    	  
      
      int Breite;
              Falscheingabe = false;
          	  String RohrbreiteCM = JOptionPane.showInputDialog("Bitte die Rohrbreite in CM angeben");
          	  try{
              Breite=Integer.parseInt(RohrbreiteCM);
          	  } catch (Exception e){
          		  JOptionPane.showMessageDialog(null, "Fehleingabe");
              	  Falscheingabe = true;
          	  }
              while(Falscheingabe == true); 
 	    	  
 	    	  
 	    	  
            
            int Verschnitt;
                	  Falscheingabe = false;
                	  String RohrverschnittCM = JOptionPane.showInputDialog("Bitte den Rohrverschnitt in CM angeben");
                	  try{
                      Verschnitt=Integer.parseInt(RohrverschnittCM);
                	  } catch (Exception e){
                		  JOptionPane.showMessageDialog(null, "Fehleingabe");
                    	  Falscheingabe = true;
                	  }
                	  while (Falscheingabe == true); 
                   
                  
      
      
                  int Rest;
                      	  Falscheingabe = false;
                      	  String RohrrestCM = JOptionPane.showInputDialog("Bitte den Rohrrest in CM angeben");
                      	  try{
                           Rest=Integer.parseInt(RohrrestCM);
                      	  } catch (Exception e){
                      		  JOptionPane.showMessageDialog(null, "Fehleingabe");
                          	  Falscheingabe = true;
                      	  }
      {while(Falscheingabe == true); 
                         
                         
       
      System.out.println(Laenge);
      System.out.println(Breite);
      System.out.println(Verschnitt);
      System.out.println(Rest);
      
     
      try {
    	    myInt = Integer.parseInt(myString);
    	}
      
    		catch(NumberFormatException e) {    		    		
    			
    		System.out.println("Erfolgreiche Eingabe. Vielen Dank!"); 
    	    	      		            }
  
      
      }
     } while ();
}
}


----ich bin java anfänger, also bitte nich böse sein das ich das nich so kann :p

danke nochmal und danke im voraus :)
 
Also wie die oben schon gesagt haben: Dein Code ist ein totales Chaos! Einrückungen sind nicht einfach nur so zur Freude und freien Verfügung da! Bei deiner Formatierung ist es ein absolutes Wunder, dass du nicht in jeder zweiten Zeile einen Fehler hast. Gewöhn dir einfach eine simple Regel an:
Am Anfang übersteuere die Formatierung, die dein IDE (hoffentlich) automatisch macht einfach mal gar nicht.

Und zum Problem:
Du hast diverse nicht balancierte Klammern (eine typische Krankheit von unübersichtlich formatiertem Code). Ein Beispiel daraus:
Java:
do
{
	Falscheingabe = false;
	String RohrlängeCM = JOptionPane.showInputDialog("Bitte die Rohrlänge in CM angeben");
	try
	{
		Laenge = Integer.parseInt(RohrlängeCM);
	}
	catch (Exception e)
	{
		JOptionPane.showMessageDialog(null, "Fehleingabe");
		Falscheingabe = true;
	}

while(Falscheingabe == true);

Hier siehst du auch, dass solche Sachen durch eine korrekte Formatierung sofort auffallen.
 
ich nix verstehen gut :(

programmieren is doof... dauernd mach ich Fehler, ich muss noch viel üben.

Kannst du mir bitte noch einmal den ganzen Code schicken sodass er funktioniert.

Danke für deine/eure Hilfe

lg hanss
 
Nein, ich werde dir den Code nicht schicken, das hilft dir gar nichts. Was fällt dir in dem Codeausschnitt auf, den ich gepostet habe, wenn es explicit um _Klammern_ geht?
 
Moin,

schau' Dir vor allem mal die Syntax einer "do-while-"Schliefe an (!)
Zu JEDEM "do" gehört ein "while" (und umgekehrt) inkl. korrekter Klammerung ! ! !

http://www.dpunkt.de/java/Die_Sprache_Java/Die_Sprachelemente_von_Java/14.html#x61

Ich habe mal versucht, Deinen Code etwas besser zu formatieren, sodass man die Klammerebenen erkennt.
Dabei sieht man, dass bei Dir gleich mehrfach die Schleifenenden einfach in der Luft hängen ....

Java:
import javax.swing.JOptionPane;
 
public class SchulaufgabenTestgepimpt
{
    private static Object myInt;
    private static String myString;
 
    public static void main (String args [])
    {
        String text = "A*R.ProductionS";
 
        for(int i = 1; i<2; i++)
        {
            for(int j = 1; j<3;j++)
            {
                if(j==2)
                {
                    text = text + "Test";
                }
            }
            text = text + "Code";
        }
 
        System.out.println(text);
     
        int Laenge;
        boolean Falscheingabe;
         
        do 
        {
            Falscheingabe = false;
            String RohrlängeCM = JOptionPane.showInputDialog("Bitte die Rohrlänge in CM angeben");
            try
            {
                Laenge=Integer.parseInt(RohrlängeCM);
            } 
            catch (Exception e)
            {
                JOptionPane.showMessageDialog(null, "Fehleingabe");
                Falscheingabe = true;
            }
// ===========================
// hängt in der Luft ! ! !        
while(Falscheingabe == true);
// ===========================
     
        int Breite;
        Falscheingabe = false;
        String RohrbreiteCM = JOptionPane.showInputDialog("Bitte die Rohrbreite in CM angeben");
        try
        {
            Breite=Integer.parseInt(RohrbreiteCM);
        } 
        catch (Exception e)
        {
            JOptionPane.showMessageDialog(null, "Fehleingabe");
            Falscheingabe = true;
        }

// ===========================
// hängt in der Luft ! ! !        
while(Falscheingabe == true);
// ===========================
             
        int Verschnitt;
        Falscheingabe = false;
        String RohrverschnittCM = JOptionPane.showInputDialog("Bitte den Rohrverschnitt in CM angeben");
        try
        {
            Verschnitt=Integer.parseInt(RohrverschnittCM);
        } 
        catch (Exception e)
        {
            JOptionPane.showMessageDialog(null, "Fehleingabe");
            Falscheingabe = true;
        }

// ===========================
// hängt in der Luft ! ! !
while (Falscheingabe == true);
// ===========================
                   
        int Rest;
        Falscheingabe = false;
        String RohrrestCM = JOptionPane.showInputDialog("Bitte den Rohrrest in CM angeben");
        try
        {
            Rest=Integer.parseInt(RohrrestCM);
        } 
        catch (Exception e)
        {
            JOptionPane.showMessageDialog(null, "Fehleingabe");
            Falscheingabe = true;
        }

// ===========================
// hängt in der Luft ! ! !
// überfüssige öffnende Klammer ! ! !
{while(Falscheingabe == true);
// ===========================

                         
        System.out.println(Laenge);
        System.out.println(Breite);
        System.out.println(Verschnitt);
        System.out.println(Rest);
          
        try 
        {
            myInt = Integer.parseInt(myString);
        }
        catch(NumberFormatException e) 
        {                       
            System.out.println("Erfolgreiche Eingabe. Vielen Dank!");
        }
// ===========================
// soll hier erst die do-Schleife geschlossen werden ? ? ?
} while ();
// ===========================
}
}

Du musst Dir halt überlegen, wo Du wielange welche Schleife durchlaufen willst ...
So ganz habe ich die Logik allerdings nicht verstanden :eek::p

Gruß
Klaus
 
da fehlt eine geschweifte Klammer ne geschlossene.. richtig? :D

trotzdem bitte noch code schicken wenns geht, bidde

lg
hanssss
 

Neue Beiträge

Zurück