Gibt es in JAVA keine verschachtelten for-schleifen?

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,

ich habe irgendwie ein Problem in einem Programm und ich finde den Fehler einfach nicht, da ich es nicht begreife.. ich würde höchstens sagen "Ja klar, dass das nicht geht!" wenn mir jemand sagt, dass Java keine verschachtelten for-Schleifen (ich persönlich kenne sie aus C++) kennt.. würde mich aber schwer wundern...

Also, es geht um ein Sortierprogramm.. dass es da bereits bekannte algorithmen gibt, die sicherlich auch schneller und besser funktionieren, brauch mir hier niemand sagen - es geht mir um's Prinzip.

An einer verallgemeinerung (wo der Benutzer zunächst die ANZAHL der Werte und dann die EINZELNEN WERTE eingbit) werde ich arbeiten, wenn ich verstehe, was im Folgenden Code falsch ist.. bzw. "falsch" kann man nicht sagen, da es keinen Compilerfehler gibt, aber wenn ich zu Hause versuche das Programm "auf einem Zettel" zu durchlaufen, bekomme ich andere Werte.

Hier erst mal der Code
Code:
public class sortieren
{
  public static void main(String args[])
  {
    int array[] = new int[6];   // Anzahl der Werte ist einzulesen!
    int feld[] = new int[6];
    array[0] = 3;
    array[1] = 9;
    array[2] = 2;
    array[3] = 7;
    array[4] = 5;
    array[5] = 1;
    int counter = 0;
    
    for (int i=0; i<=5; i++)
    {
      for(int k=0; k<=5; k++)
      {
        counter = 0;
        if (array[i] > array[k])
        {
          counter = counter+1;
        }
      }
      feld[counter] = array[i];
      counter = 0; 
    
    }
  }
}
 
G

Guest

Gast
(Ah, sorry ich bin wohl nicht eingeloggt.. ich dachte ich könnte den Beitrag jetzt noch editieren.. muss nun aber doppelt posten..)

Also, es ist so, dass die richtige Reihenfolge der Zahlen eigentlich 1 2 3 5 7 9 lauten sollte.. Würde man den Code so erweitern, dass er nacheinander feld[0], feld[1], ..., feld[5] ausgibt, kommt aber etwas anderes raus!
WIESO?
 
G

Gelöschtes Mitglied 5909

Gast
- ohne dass ich mir den algo angeguggt hab -
1. verschachtelte for schleifen gehn natürlich

2.
C:\>java sortieren
1
5
0
0
0
0

=> am algo stimmt was net
 
G

Gast

Gast
Hi,

es syntaktisch ist dein Programm vollkommen korrekt ;)

Nur logisch leider nicht. Lass dir in Zeile 27 mal 'feld' ausgeben, dann wirst du den Fehler sehen. Wenn nicht, kannst du dich ja nochmal melden.

Gruß
Daniel
 
G

Gast

Gast
Hm durch Daniels Antwort bin ich irgendwie darauf gekommen, dass ich damals wo etwas falsch verstanden habe, als ich mich mit "arrays" beschäftigt habe.
Ich dachte (und so ist es in C++ in meinen Augen auch..), dass ich in einem Feld mehrere Werte speichern kann.
Und auf diese kann ich dann über die indizes in klammern zugreifen..
an den ersten wert komme ich mit array[0], an den zweiten array[1] usw.

Doch wenn ich jetzt z.b. array[0] (bzw. feld[0]) ausgeben lassen, erscheinen dort eine ganze menge zahlen, dabei hätte ich nur eine erwartet..

was läuft da schief?! Hmm..

Thx schonmal für eure schnellen Antworten,
Gruß Jan
 
G

Gast

Gast
noch ein nachtrag:
im prinzip soll das ganze so funktionieren (was im ende zwar speicheraufwändig ist und vermutlich wesentlich mehr zeit braucht als andere algorithmen, aber eben möglich sein sollte), dass der erste wert im feld genommen und geschaut wird wie viele werte es gibt, die kleiner sind. und dann wird dieser wert eben in einem zweiten array feld[] an genau die stelle gesetzt, so dass sich das ganze nach und nach sortiert!

komisch, dass das nicht funktioniert :-?
 

DaKo

Bekanntes Mitglied
Du hast Arrays durchaus richtig verstanden. Wenn du dir feld[0] ausgeben lässt, bekommst du auch nur eine Zahl.

Du darfst nur nicht
Code:
System.out.println(feld);
schreiben. Dann bekommst du (da Arrays keine elementaren Datentypen sind) die Speicheradresse, nicht den Inhalt ;)

Gruß
Daniel
 
G

Gast

Gast
@DaKo:

hab ich auch nicht gemacht, hab die klammer schon immer gesetzt (jetzt gerade bei ausprobieren) aaaaber das hab ich - dumm wie ich bin - in die zweite forschleife gepackt, die ein paar mal durchläuft und somit natürlich nicht nur einen wert ausgibt.
Der zweite Fehler (und das ist auch der eigentliche Fehler, den ich jetzt behoben habe) ist ganz einfach, dass der Counter ebenfalls noch IN der zweiten forschleife resetet wurde.. so kann er hochzählen wie er will, sobald die if-schleife verlassen wird und er HÖCHSTENS um 1 erhöht wurde, wird er wieder auf 0 gesetzt..

so ists richtig
Code:
public class sortieren
{
  public static void main(String args[])
  {
    int array[] = new int[6];   // Anzahl der Werte ist einzulesen!
    int feld[] = new int[6];
    array[0] = 3;
    array[1] = 9;
    array[2] = 2;
    array[3] = 7;
    array[4] = 5;
    array[5] = 1;
    int counter = 0;

    for (int i=0; i<=5; i++)
    {
      for(int k=0; k<=5; k++)
      {
        if (array[i] > array[k])
        {
          counter = counter+1;
        }
      }
      feld[counter] = array[i];
      counter = 0;
    }
    System.out.println(feld[0]);
    System.out.println(feld[1]);
    System.out.println(feld[2]);
    System.out.println(feld[3]);
    System.out.println(feld[4]);
    System.out.println(feld[5]);
    
  }
}
werd nun aber noch an einer verallgemeinerung arbeiten ;)
vielen lieben Dank,
Gruß Jan
 
G

Gast

Gast
Ich will hier ja nichts und niemanden zuspammen, aber vielleicht gibt's ja wen, den es interessiert..:

Hier also meine Lösung:
Code:
import java.io.*;
public class sortieren
{
  public static void main(String args[]) throws IOException
  {
    BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
    System.out.print("Gib eine Anzahl an Werten ein! ");
    int anzahl = Integer.parseInt(in.readLine());
    int array[] = new int[anzahl];
    int feld[] = new int[anzahl];
    int counter = 0;
    for (int j=0; j<anzahl; j++)
    {
       System.out.print("Gib einen Wert ein! ");
       array[j] = Integer.parseInt(in.readLine());
    }
    for (int i=0; i<anzahl; i++)
    {
      for(int k=0; k<anzahl; k++)
      {
        if (array[i] > array[k])
        {
          counter = counter+1;
        }
      }
      feld[counter] = array[i];
      counter = 0;
    }
    for (int l=0; l<anzahl; l++)
    {
      System.out.println(feld[l]);
    }
  }
}

Liebe Grüße, Jan
Vielen Dank an Daniel, DaKo (sofern das ein anderer Daniel ist?!) und auch an raiL (für die beruhigende Nachricht, dass for-schleifen auch weiterhin verschachtelt werden können *g*)
 

DaKo

Bekanntes Mitglied
Hi Jan,

Lösung angeben, wenn gefunden, ist erwünscht ;)

Gruß
Daniel

PS: DaKo = Daniel (zumindest in diesem Fall). Hatte nur vergessen, mich einzuloggen
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
Z Java ArrayList speichert falsche Daten ab bzw. gibt falsche Daten aus? Java Basics - Anfänger-Themen 42
Aprendiendo Gibt es in der JAVA-API eine Funktion, die eine Dezimalzahl in eine binäre Zahl umwandelt? Java Basics - Anfänger-Themen 8
E Gibt es in Java Properties (wie in C#) Java Basics - Anfänger-Themen 6
F Java-Programm gibt in Eingabeaufforderung nichts aus Java Basics - Anfänger-Themen 4
C Welches Format gibt Java aus? Java Basics - Anfänger-Themen 5
D Gibt es in Java Pointerarithmetik? Java Basics - Anfänger-Themen 3
S Java gibt ein Error. Warum?? Java Basics - Anfänger-Themen 12
R Java Problem (mit NetBeans) - html gibt nur java logo aus Java Basics - Anfänger-Themen 7
K Welche methoden gibt es in Java um Zahlen von der Java Basics - Anfänger-Themen 11
N Java gibt mir immer Error aus! Java Basics - Anfänger-Themen 12
M Gibt es das in Java ! Java Basics - Anfänger-Themen 5
A Gibt es standardmässig in Java einen Verzeichnis-Listener? Java Basics - Anfänger-Themen 6
D Gibt es einen vordefinierten Kalender in java? Java Basics - Anfänger-Themen 8
M Faktor Zeit in Java! Gibt es sowas? Java Basics - Anfänger-Themen 6
K gibt es einen unterschied zwischen .JAVA und .java ? Java Basics - Anfänger-Themen 4
P Flashähnliches Tool für Java, gibt es so was? Java Basics - Anfänger-Themen 12
G Java Collections Framework : id + 5 Werte , gibt es sowas Java Basics - Anfänger-Themen 4
P Gibt es einen anderen Weg um "{}" in IntelliJ zu schreiben? Java Basics - Anfänger-Themen 5
Shadowrunner Variablen Gibt es eine Möglichkeit die Ziffern/Stellen einer Zahl fest zu legen? Java Basics - Anfänger-Themen 3
T HashMap Lsite gibt die sachen nicht aus wie gewollt. Java Basics - Anfänger-Themen 3
L Methoden Eine Methode um zu testen ob es ein Nachbar gibt Java Basics - Anfänger-Themen 10
N Gibt es hierfür einen Shortcut Java Basics - Anfänger-Themen 5
U Warum gibt das eine Nullpointerexception? (Switch) Java Basics - Anfänger-Themen 6
K Warum gibt mir z. B. 40^128 eine Zahl? Ich dachte mit xor kann man nur booleanwerte erhalten, also prüfen ob etwas whar oder falsch ist? Java Basics - Anfänger-Themen 1
J Interpreter-Fehler Programm gibt nicht gewünschtes Ergebnis aus Java Basics - Anfänger-Themen 11
G Input/Output getText() gibt keinen Wert! Java Basics - Anfänger-Themen 13
Arita welche Fehler gibt es noch? wie kann ich es noch vervollständigen Java Basics - Anfänger-Themen 15
P Methode die ausgibt wie viele Primzahlen es zwischen 2 und n gibt Java Basics - Anfänger-Themen 10
P Welche Zeile in Tadople gibt einen compiler error? Java Basics - Anfänger-Themen 5
S Gibt es ein simples JWebbrowser Element? Java Basics - Anfänger-Themen 6
S Gibt es irgendeine Möglichkeit, dies zu tun?(Android Studio) Java Basics - Anfänger-Themen 1
S Gibt es sowas (JSpinner)? Java Basics - Anfänger-Themen 9
F If Abfrage gibt falsches Ergebnis.... Java Basics - Anfänger-Themen 6
J Erste Schritte Gibt es setMantisse? Java Basics - Anfänger-Themen 7
J Vektoren Add gibt nicht das aus was es sollte Java Basics - Anfänger-Themen 3
S Gibt es einen guten kostenlosen Online-kurs Java Basics - Anfänger-Themen 2
D Warum gibt mir das Programm nicht den Array invertiert an ? Java Basics - Anfänger-Themen 1
B Prüfen, ob es schon einen Termin gibt in einem Zeitraum Java Basics - Anfänger-Themen 5
A Kfz - Händler Klasse. JUnit-Test gibt noch Fehler an, aber finde Ursache nicht Java Basics - Anfänger-Themen 7
S Gibt es für die Klasse HashMap Generic Implementierungen? Java Basics - Anfänger-Themen 11
S Gibt es eine Funktion, die gewissermaßen eine Reihe von instanceOf() vereinheitlicht? Java Basics - Anfänger-Themen 19
N Ausführung gibt keinen Fehler an, Return wird aber nicht ausgegeben Java Basics - Anfänger-Themen 22
L Methoden Rekursion gibt alten Wert wieder Java Basics - Anfänger-Themen 37
R Gibt es Eine einfache Programierung dieser Methoden Java Basics - Anfänger-Themen 8
B BufferedReader gibt Datei-Inhalt doppelt aus Java Basics - Anfänger-Themen 3
B Wieso gibt er hier nur die ungeraden Zahlen aus? Java Basics - Anfänger-Themen 5
B Wieso gibt das Programm in der Console kein Ergebnis aus? Java Basics - Anfänger-Themen 2
D Funktion gibt Dimension zurück Java Basics - Anfänger-Themen 11
JavaNewbie2.0 Gibt meiner Meinung etwas falsches aus. Java Basics - Anfänger-Themen 7
S Ausgabe gibt nur Arrayadresse aus... Java Basics - Anfänger-Themen 4
F Scanner - nextLine() gibt leeren String zurück Java Basics - Anfänger-Themen 2
Tommy Nightmare void Methode gibt Array zurück Java Basics - Anfänger-Themen 3
N Kalender - Tag addieren gibt 31. Juni zurück Java Basics - Anfänger-Themen 3
G Gibt es eine Methode die bei einem StringBuilder n mal das Zeichen c hinzufügt? Java Basics - Anfänger-Themen 6
G Taschenrechner gibt nur 0.0 aus Java Basics - Anfänger-Themen 8
OlafHD Gibt es einen Laufbalken? Java Basics - Anfänger-Themen 2
P Listen sortieren mit Binärbaum gibt keine Ausgabe ab 10000 Integern Java Basics - Anfänger-Themen 14
G Input/Output InputStream gibt nicht die Korrekten Werte aus Java Basics - Anfänger-Themen 10
W IllegalArgumentException gibt nichts aus Java Basics - Anfänger-Themen 2
K Programm gibt nichts aus? Java Basics - Anfänger-Themen 2
M Erste Schritte Wie speichert und gibt man Arrays aus? (JLabel) Java Basics - Anfänger-Themen 12
B gibt es ein Stundenplan-Algorithmus? Java Basics - Anfänger-Themen 11
G Konsole gibt "alte" sachen aus Java Basics - Anfänger-Themen 3
J while(nst == 0) gibt Fehlermeldung Java Basics - Anfänger-Themen 4
W Input/Output DataOutputStream gibt NULL zurück Java Basics - Anfänger-Themen 5
O Methode gibt Null zurück Java Basics - Anfänger-Themen 7
T Konsole gibt nicht das Gewünschte aus Java Basics - Anfänger-Themen 5
T Input/Output GregorianCalender gibt falsch aus? Java Basics - Anfänger-Themen 4
C OOP Erstellen eigener Objekte die es schon gibt "schlau"? Java Basics - Anfänger-Themen 3
I beim auslesen der Properties gibt es ein Fehler Java Basics - Anfänger-Themen 7
C Input/Output System.in.read() gibt nicht -1 zurück? Java Basics - Anfänger-Themen 3
T String gibFarbe() - gibt nix?! Java Basics - Anfänger-Themen 13
L Gibt es etwas wie "HashMap <String, String, String> Java Basics - Anfänger-Themen 9
B JRadioButton wechsel gibt NullPointerException Java Basics - Anfänger-Themen 2
P Temperatur Umrechner gibt nur ein Ergebnis aus Java Basics - Anfänger-Themen 2
S Class File Editor gibt beim Start der Programms die Fehlermeldung Source not found aus Java Basics - Anfänger-Themen 1
D Methode die statt char[] ein "null" zurück gibt Java Basics - Anfänger-Themen 8
M Input/Output File.listFiles() gibt null zurück Java Basics - Anfänger-Themen 3
S Methoden void-Methode: Wieso gibt es eine Rückgabe? Java Basics - Anfänger-Themen 5
S Textdatei lesen, Methode gibt nur die letzte Zeile aus. Warum? Java Basics - Anfänger-Themen 5
W return-Anweisung gibt nichts aus Java Basics - Anfänger-Themen 5
M toString gibt "null" statt "0.0" aus Java Basics - Anfänger-Themen 5
P 2D Array auslesen gibt nur letzten Wert aus Java Basics - Anfänger-Themen 11
O Funktioniert dies? Und gibt es eine bessere Lösung? Java Basics - Anfänger-Themen 6
T Methoden methode gibt array bound exeption Java Basics - Anfänger-Themen 8
B Input/Output File.length() gibt bei vielen Ordnern 0 zurück Java Basics - Anfänger-Themen 9
G Erste Schritte Über verschiedene Datentypen iterieren. Gibt es sowas? Java Basics - Anfänger-Themen 19
Xendarii Quicksort gibt kein Ergebnis aus Java Basics - Anfänger-Themen 13
SheldoN Gibt es größere Datentypen als long? Java Basics - Anfänger-Themen 2
S Rückgabetyp - Objekt gibt sich selber zurück Java Basics - Anfänger-Themen 4
G Eclipse gibt Fehler aus, Jelliot (z.B.) nicht Java Basics - Anfänger-Themen 1
C Programm gibt merkwürdige Zahl aus Java Basics - Anfänger-Themen 3
C Umgebungsvariable import anweisung gibt fehlermeldung Java Basics - Anfänger-Themen 2
N Unerklärlich: Rekursiver Algorithmus gibt falschen Datentyp zurück... Java Basics - Anfänger-Themen 4
P toString-Methode gibt immer null vor Variable aus Java Basics - Anfänger-Themen 9
L JTextField getText() gibt immer null zurück Java Basics - Anfänger-Themen 10
K Javalexikon für Grundbegriffe? Gibt es sowas? Java Basics - Anfänger-Themen 7
J SuM.kern.Maus gibt null obwohl initialisiert Java Basics - Anfänger-Themen 3
M Datentypen Char Array in String Array gibt Probleme Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben