0 Daumen
127 Aufrufe

Hey ich schreibe einen Code und soll nun eine zweite Methode einbauen. Wenn ich:

  public int example(){
  //...
  }

bekomme ich die Fehlermeldung

illegal start of expression

wenn ich aber

    int example;{
  //...
  }


funktioniert es, nun aber die Frage ob das eine Methode ist?

Hier ist der gesamte Code

 public class excep {

  public static void main(String[] args) throws Exception {
      float zahl;
      try {
          zahl = Integer.parseInt(args[0]);

          if (zahl > 10) {
              throw new Exception("Zahl darf nicht gr├Â├čer als 10 sein!");
          }



      }catch (ArrayIndexOutOfBoundsException e) {
          System.out.println("Bitte gib ein Argument!");
          zahl = 2;
          e.printStackTrace();

      } catch (NumberFormatException f) {
          System.out.println("bitte gib eine Zahl ein!");
          zahl = 3;
          f.printStackTrace();

      }



      System.out.println("Deine Zahl: " + zahl);
     
          int TwentyBy;{
          System.out.println("Der Quotient mit 20: "+ 20/zahl);
      }
  }



von

1 Antwort

0 Daumen

In Java k├Ânnen Methoden nicht direkt in Methoden deklariert werden.

Das ist also kein g├╝ltiger Code:

public void foo() {
//...
public void bar() {
//...
}
}

Daher bekommst du auch beim kompilieren die Fehlermeldung illegal start of expression.

Richtig dagegen ist:

public void foo() {
//...
}

public void bar() {
//...
}

Mit

int example;{
//...
}

bzw. int example; deklarierst du eine neue Variable keine Methode, die {} sind hier daher unn├Âtig und werden vom Compiler ignoriert, deswegen tritt hier auch keine Fehlermeldung mehr auf.


Ich habe dir einmal zur Verdeutlichung Kommentare an den Klammern und Methoden geschrieben.

Code:

public class Excep {

// 1. Methode
public static void main(String[] args) throws Exception {
float zahl;
try {
zahl = Integer.parseInt(args[0]);

if (zahl > 10) {
throw new Exception("Zahl darf nicht gr├Â├čer als 10 sein!");
}

} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("Bitte gib ein Argument!");
  zahl = 2;
  e.printStackTrace();

} catch (NumberFormatException f) {
System.out.println("bitte gib eine Zahl ein!");
  zahl = 3;
  f.printStackTrace();
}

System.out.println("Deine Zahl: " + zahl);
int twentyBy;
System.out.println("Der Quotient mit 20: "+ 20/zahl);
} // schlie├čende Klammer der 1. Methode

// Hier muss die 2. Methode hin
public int example(){
//...
 } // schlie├čende Klammer der 2. Methode

} // schlie├čende Klammer der Klasse
von

Danke f├╝r die Hilfe, jedoch nimmt er nun f├╝r die zweite Methode den Kommandzeilenparameter nicht mehr an

Daf├╝r kannst du Parameter benutzen public int example(int zahl), diese stehen in den () Klammern der Methode.

public void twentyBy(int zahl) {
System.out.println("Der Quotient mit 20: "+ 20/zahl);
}

Die Methode kannst du dann mit twentyBy(zahl); am Ende der main-Methode aufrufen.

 public static void main(String[] args) throws Exception {
//...
twentyBy(zahl);
}

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community