Feld in untermethoden ausgeben

Moyo

Mitglied
grüsze ,

wie der titel sagt würde ich gerne ein feld in einer methode initialisieren und in einer weiteren methode rückwärs ausgeben.
leider sind meine java kenntnisse .. beschränkt und ich finde den fehler nicht bzw. kann nichts mit den fehlermeldungen anfangen

Java:
 import javax.swing.*;
public class rückwärts {
  public static void main(String[] args) {
    double[] feld = new double[5];
    
    public static double[] zuweisen (double[] feld) {
      for ( int i = 0 ; i < 5 ; i++) {
        String f = JOptionPane.showInputDialog("zahl eingeben");
        feld[i] = Double.parseDouble(f);
      }
      return feld[i];
    }
    
    public static double[] ausgabe (double feld[i]) {
      for ( int i = 4; i >= 0 ; i-- ) {
        System.out.print(feld[i] + " LEERZEICHEN ");
      }
      System.out.println(". Na, das hat doc dslhfgsdgldfgndfgdfgldfg pt");
    }
    
  }
}

kann mir jemand auf die sprünge helfen ?
 
Zuletzt bearbeitet:
Es wäre hilfreich, wenn wir die Fehlermeldungen bekämen aber ich sehe schon das Problem. Du versuchst eine Methode in einer Methode zu benutzen. Das funktioniert nicht. Methoden müssen innerhalb von Klassen, aber außerhalb von Methoden deklariert werden.
 
Java:
5 errors found:
File: C:\Users\kadoy\Programmieren\rückwärts.java  [line: 6]
Error: Syntax error on token "(", ; expected
File: C:\Users\kadoy\Programmieren\rückwärts.java  [line: 6]
Error: Syntax error on token ")", ; expected
File: C:\Users\kadoy\Programmieren\rückwärts.java  [line: 14]
Error: Syntax error on token "(", ; expected
File: C:\Users\kadoy\Programmieren\rückwärts.java  [line: 14]
Error: Syntax error on tokens, Expression expected instead
File: C:\Users\kadoy\Programmieren\rückwärts.java  [line: 14]
Error: Syntax error on tokens, delete these tokens

bedeutet das ich hab falsche klammern gesetzt odeer dass ich das return feld keiner neuen methode übergeben kann?
 
Also da stimmst so ziemlich gar nichts in deinem Code:
1. Innerhalb der main Methode (oder generell irgendeiner Methode) kannst du nicht weitere Methoden definieren
2. Der Rückgabewert der Methode "zuweisen" passt nicht. Sie soll double[] zurückliefern, mit feld gibst du aber nur ein double zurück
3. Der Rückgabewert der Methode "ausgabe" passt nicht. Sie soll double[] zurückliefern, du gibts dort aber garnichts zurück
4. Klassennamen sollten Immer mit einem Großbuchstaben anfangen. Außerdem sollten keine Umlaute verwendet werden.
 
Nabend,

1: System.out.println(". Na, das hat doc dslhfgsdgldfgndfgdfgldfg pt"); :noe:

Solche sachen kannst du uns einfach nicht antun. Wenn ich sowas sehe dann würde ich mich gerne selbst erschießen.

So, nun mal zum Thema:

Java:
    public static double[] ausgabe (double feld[i]) {
      for ( int i = 4; i >= 0 ; i-- ) {
        System.out.print(feld[i] + " LEERZEICHEN ");
      }
      System.out.println(". Na, das hat doc dslhfgsdgldfgndfgdfgldfg pt");
    }

Das da oben gibt einen double[] zurück, d.h. es muss ein return da sein.
versuch mal das :

Java:
    public static double[] ausgabe (double feld[i]) {

zu dem hier zu ändern:

Java:
    public static void ausgabe (double feld) {

Scheint mir allerdings so als würdest du wirklich noch sehr neu sein.
Wenn du Lust hast könnte ich dich Java in so einer Art Crash-Kurs beibringen, zumindest die Basics.
Kannst dich ja mal per PN melden.
Sonst vielleicht nochmal nachschauen was die eckigen Klammern -> feld[] denn überhaupt bedeuten.

mfg Major
 
@Enceladus271 zu 1) muss ich dann die main methode nach dem erstellen des feldes schliessen?
zu 2) wieso ist ist feld nur 1 wert ich hab ihm doch durch die schleife mehrere zugewiesen ?
zu 3 ) muss ich dann sowas wie public void ausgabe ohne return benutzen?
4) hab die ü ä's geaendert 🙂
 
1. Die Methoden müssen aus der main Methode raus, also quasi auf der selben "Ebene" liegen wie die main Methode.
2. feld ist ein Array. mit feld greifst du nur auf das i-te Element dieses Arrays zu. Also ist feld nur ein double und kein double-Array
3. Ja. Da du nur auf der Konsole etwas augeben willst und die Methode nichts zurückliefert muss der Rückgabewert void sein. Und der Parameter muss so aussehen: double[] feld
 
ok ich bin mir nicht ganz sicher ob ich voran gekommen bin, aber habs nun soweit gebracht

Java:
import javax.swing.*;
public class rueckwaerts {
  public static void main(String[] args) {
    double[] feld = new double[5];
    zuweisen(feld);
    
    
  }
  public static double[] zuweisen (double[] feld) {
    for ( int i = 0 ; i < 5 ; i++) {
      String f = JOptionPane.showInputDialog("zahl eingeben");
      feld[i] = Double.parseDouble(f);
    }
    return feld;     
  }
  
  public void ausgabe (double[] feld) {
    for ( int i = 4; i >= 0 ; i-- ) {
      System.out.print(feld[i] + " ");
    }
  }
  
}

er zeigt zwar keine fehlermeldung mehr an nur passiert leider auch nichts also keine consolenausgabe
keine ahnung ob das nun gut oder schlecht ist
 
Du hast es fast geschafft:
Du musst in der main Methode noch ausgabe(feld) aufrufen.
Dazu musst du die Methode noch static machen, da man in static Methoden (hier: main) keine nicht-static Methoden aufrufen kann.
 

Zurück
Oben