Ich sehe meinen fehler nicht

Hey Leute ich bins wieder der totale Anfänger also habt Gnade,

Java:
public class Demo {
public static void main(String[] args) {
            int N = Integer.parseInt(args[0]);// positive oder negative ganze Zahl einlesen
            int vorherigesN = 0;
            int PlateauLänge = 0;
            int längsterPlateauIndex = 0;
            int cPlateauLänge = 0;             // = momentane Plateau länge
            int AnfangsIndex = 0;
            int Index = 0;
            int argument=args.length;
              if(argument < 2)
              {
                     System.out.println("ERROR: Bitte mehr als 2 Zahlen angeben"); // ein Plateau kann erst ab 3 eingeben Zahlen vorhanden sein

                     return;
              }


            while (N >= 0) {
                    if (Index > 0) {
                            if (N > vorherigesN) {                // Plateau initialisieren
                                    AnfangsIndex = Index; //
                                    cPlateauLänge = 1;
                            } else if (cPlateauLänge > 0 && N == vorherigesN) {
                                    cPlateauLänge++;                          // momentane Plateaulänge wird um 1 erhöht falls Zahl gleich ist
                            } else {
                                    if (cPlateauLänge > 0 && cPlateauLänge > PlateauLänge) { // neue länge größter als alte = neue
                                            PlateauLänge = cPlateauLänge;
                                            längsterPlateauIndex = AnfangsIndex;
         
                                            cPlateauLänge = 0;
                                            AnfangsIndex = 0;
                                    }
                            }
                    }
                    if (N > 0) {
                            vorherigesN = N; // N wird gespeichert und anschließend der Index um einen hoch gesetztt
                            Index++;
                    } else {

                  N = 0 // ??????? schleife nach allen übergebenen argumenten beenden
}
            }
            System.out.println(PlateauLänge);
            System.out.println(längsterPlateauIndex);
    }
}

Naja ich sehe meinen Fehler nicht. Ich weiss nicht warum ich in einer Endlosschleife stecke, meine IDE sagt mir auch nicht warum ;(
 
Zuletzt bearbeitet:
Hab N = 0 auch schon probiert, ich raff einfach nicht wie ich es hinbekomme das wenn keine argumente mehr gegeben sind und halt das größte plateau + index gefunden wurde er dann alles beendet, aber ja das mit den n = -1 war ja mal so dumm von mir
 
also ich soll ein programm schreiben ,welches per command line argumente einliest und checkt ob es plateaus gibt. Ein Plateau kann nur vorhanden sein wenn die zahlen vor und danach kleiner sind als das Plateau selbst. Ausgabe ist dann halt der Index an welchem sich das größte Plateau befindet und wie groß es ist.

edit: und dazu ich soll halt noch ERROR meldungen für bestimme fälle angeben. Wie z.b. du schon erwähnt hast, dass wenn es weniger als 3 argumente gibt es garkein Plateau geben kann
 
also ich soll ein programm schreiben ,welches per command line argumente einliest und checkt ob es plateaus gibt. Ein Plateau kann nur vorhanden sein wenn die zahlen vor und danach kleiner sind als das Plateau selbst. Ausgabe ist dann halt der Index an welchem sich das größte Plateau befindet und wie groß es ist.

edit: und dazu ich soll halt noch ERROR meldungen für bestimme fälle angeben. Wie z.b. du schon erwähnt hast, dass wenn es weniger als 3 argumente gibt es garkein Plateau geben kann
Dann solltest du anfangen, indem du die Argumente auch einliest und nicht nur das erste. Wenn die Anzahl der Argumente unbekannt ist, dann bietet sich da ein Array an. Die Schritte wären etwa:

  1. Prüfen, ob mindestens zwei Argumente angegeben wurden, ansonsten Fehlermeldung und Abbruch
  2. Ein Array entsprechend der Anzahl der Argumente erzeugen
  3. Eine Schleife, die die Argumente in das Array einliest.
  4. Danach kannst du die Werte im Array entsprechend der Vorgaben prüfen.
 

Zurück
Oben