# illegal start of expression?



## laaaz (3. Jan 2006)

hallo

Ich hab das folgende Programm aus dem Buch "JAVA" von Helmut Erlenkötter ausprobiert.


```
public class Funk01 {
  public static void main(String[] args) {
    System.out.print(mwSt(10,16));

    
      public static double mwSt(double wert, double steuer) {
      double endbetrag;
      endbetrag = wert / 100 * steuer +wert;
    }
    return endbetrag;
  }
}
```


Allerdings wird es weder von netbeans noch von eclipse anerkannt.Folgender Fehler wird angezeigt:

*Illegal start of expression*



Kann mir irgendjemand weiterhelfen?[/code]


----------



## Lim_Dul (3. Jan 2006)

Du hast die Klammern falsch gesetzt.


```
public class Funk01 {
  public static void main(String[] args) {
    System.out.print(mwSt(10,16));   
  }

    public static double mwSt(double wert, double steuer) {
    double endbetrag;
    endbetrag = wert / 100 * steuer +wert;
    return endbetrag;
  }
}
```


----------



## laaaz (5. Jan 2006)

thx


----------



## Chili (6. Jan 2006)

Ich hab ein ähnliches Problem - finde auch meinen Fehler nicht und es wird auch illegal start of expression angezeigt:


```
public void dazuSchreiben(String neueZiffer) {
        for (zeichenEingegeben == 1) {
            tfAnzeige.setText(neueZiffer);
            zeichenEingegeben = 0;
        }
        for (zeichenEingegeben == 2) {
            zwischenRechnen();
        }
        for (zeichenEingegeben == 0)
        tfAnzeige.setText(tfAnzeige.getText()+neueZiffer);
    }
```


----------



## Oni (6. Jan 2006)

meinst du vielleicht "if" und nicht "for" ? was ist zeichenEingegeben für ein typ?


----------



## Chili (6. Jan 2006)

zeichenEingegeben ist ein int

Ich weiß nicht was ich mine, ob for oder if, ich meine es so wie es funktioniert ;-)
Mit if sollte es eigentlich auch gehen. Was muss ich ändern damit es funktioniert?


----------



## Oni (6. Jan 2006)

"for" ist eine schleife
"if" ist eine abfrage 

und du brauchst doch hier keine schleife oder? 

test das mal so:

```
public void dazuSchreiben(String neueZiffer) {
        if (zeichenEingegeben == 1) {
            tfAnzeige.setText(neueZiffer);
            zeichenEingegeben = 0;
        }
        if (zeichenEingegeben == 2) {
            zwischenRechnen();
        }
        if (zeichenEingegeben == 0)
        tfAnzeige.setText(tfAnzeige.getText()+neueZiffer);
    }
```


----------



## Chili (6. Jan 2006)

Funktioniert auch nicht bzw die erste Zeile wird beim compilieren (ich benutze BlueJ) immer gelb makiert und da steht illegal start of expression.


----------



## Oni (6. Jan 2006)

was heißt den die erste zeile? 
die?

```
public void dazuSchreiben(String neueZiffer) {
```

ich sehe da jetzt spontan keinen fehler im code.


----------



## Chili (6. Jan 2006)

Ja ich nämlich auch nicht - deswegen bin ich etwas verwirrt...
Ja die Zeile meine ich.


----------



## Oni (6. Jan 2006)

Hast du vielleicht ein paar Zeilen darüber ein ";" oder eine "}" vergessen?
poste mal mehr code


----------



## Chili (6. Jan 2006)

K so sieht die "nähere Umgebung" aus:


```
if (e.getSource() == btMal){
            zeichenEingegeben++;
            if (zeichenEingegeben == 1) {
                zeichen1 = "*";
                String zwischen = tfAnzeige.getText();
                ersteZahl = Double.parseDouble(zwischen);
                tfAnzeige.setText(zeichen1);
            }
            if (zeichenEingegeben == 2) {
                zeichen2 = "*";
                String zwischen = tfAnzeige.getText();
                ersteZahl = Double.parseDouble(zwischen);
                tfAnzeige.setText(zeichen2);
        }       
        if (e.getSource() == btGeteilt){
            zeichenEingegeben++;
            if (zeichenEingegeben == 1) {
                zeichen1 = "/";
                String zwischen = tfAnzeige.getText();
                ersteZahl = Double.parseDouble(zwischen);
                tfAnzeige.setText(zeichen1);
            }
            if (zeichenEingegeben == 2) {
                zeichen2 = "/";
                String zwischen = tfAnzeige.getText();
                ersteZahl = Double.parseDouble(zwischen);
                tfAnzeige.setText(zeichen2);
        }    
        if (e.getSource() == btGleich){
            String zwischen = tfAnzeige.getText();
            zweiteZahl = Double.parseDouble(zwischen);
            rechnen();
        }    
        if (e.getSource() == btPunkt){
            String zeichen = ".";
            tfAnzeige.setText(tfAnzeige.getText()+zeichen);
        }
        if (e.getSource() == btHoch){
            zeichenEingegeben++;
            if (zeichenEingegeben == 1) {
                zeichen1 = "^";
                String zwischen = tfAnzeige.getText();
                ersteZahl = Double.parseDouble(zwischen);
                tfAnzeige.setText(zeichen1);
            }
            if (zeichenEingegeben == 2) {
                zeichen2 = "^";
                String zwischen = tfAnzeige.getText();
                ersteZahl = Double.parseDouble(zwischen);
                tfAnzeige.setText(zeichen2);
        }
        if (e.getSource() == btReset) {
            tfAnzeige.setText("0");
            ersteZahl = 0;
            zweiteZahl = 0;
        }
        if (e.getSource() == btBack) {
            String text = tfAnzeige.getText();
            tfAnzeige.setText(text.substring(0, text.length()-1));
        }
    }
    
    public void dazuSchreiben(String neueZiffer) {
        if (zeichenEingegeben == 1) {
            tfAnzeige.setText(neueZiffer);
            zeichenEingegeben = 0;
        }
        if (zeichenEingegeben == 2) {
            zwischenRechnen();
        }
        if (zeichenEingegeben == 0) {
            tfAnzeige.setText(tfAnzeige.getText()+neueZiffer);
        }
    }
    
    public void rechnen() {
        if (zeichen1 == "+") {
        ergebnis = ersteZahl + zweiteZahl;
        String endergebnis = String.valueOf(ergebnis);
        tfAnzeige.setText(endergebnis);
        }
        if (zeichen1 == "-") {
        ergebnis = ersteZahl - zweiteZahl;
        String endergebnis = String.valueOf(ergebnis);
        tfAnzeige.setText(endergebnis);
        }
        if (zeichen1 == "*") {
        ergebnis = ersteZahl * zweiteZahl;
        String endergebnis = String.valueOf(ergebnis);
        tfAnzeige.setText(endergebnis);
        }
        if (zeichen1 == "/") {
        ergebnis = ersteZahl / zweiteZahl;
        String endergebnis = String.valueOf(ergebnis);
        tfAnzeige.setText(endergebnis);
        }
        if (zeichen1 == "^") {
        double result = Math.pow(ersteZahl, zweiteZahl);
        String endergebnis = String.valueOf(result);
        tfAnzeige.setText(endergebnis);
        }
    }
```


----------



## Oni (6. Jan 2006)

Ich gehe mal davon aus, da fehlt eine } in Zeile 62 (nur eine Vermutung)


----------



## Chili (6. Jan 2006)

da kommt genau der selbe fehler...


----------



## Oni (6. Jan 2006)

zeig mal den ganzen code.


----------



## Chili (6. Jan 2006)

ghf


----------



## Oni (6. Jan 2006)

ok, du hast da mehrere vergessen.

füg mal in zeile 270 fünf von den klammern ein "}"


----------



## Chili (6. Jan 2006)

Okay scheint zu funktionieren...danke...also immer wenn diese fehlermeldung kommt kann es nur sein dass man Klammern vergessen hat? Naja ich editier mal den Quelltext oben wieder raus ne, sont klaut den noch jemand aus meinem Informatik Kurs^^


----------



## Oni (6. Jan 2006)

es kann auch ein semikolon fehlen muss keine klammer sein


----------



## Chili (6. Jan 2006)

ahso...ja gut zu wissen =) danke ;-)


----------

