# das Programm ordentlich terminieren



## marik (29. Nov 2010)

Hallo an alle.
Ich habe die Aufgabe einen String Array zu sortieren. 
das habe ich schon alles gemacht. aber ich verstehe nicht, was soll ich bei "Fehlt die Eingabe, so soll das Programm ohne Ausgabe ordentlich terminieren (und nicht einen Laufzeitfehler erzeugen!). " machen?????
ich habe es so verstenden, wenn das Array nicht befüllt ist, soll das Programm beebndet sein, aber wie????

```
for ( int i =0; i < array.length; i++){  // Belegung
         
			wort = SavitchIn.readWord();
		
		   array[i] = wort;
			if ( array[i]  ????????){
       
		 System.out.println("Array muss gefuellt werden");
	    
		 System.exit(0);
		 }
```
Danke sehr, wenn mir jm hilft


----------



## XHelp (30. Nov 2010)

Zeig mal mehr Code, so dass man versteht, was du überhaupt machst.
Bist du sicher, dass die Eingabe nicht über Kommandozeile-Argumente kommen? Dann würde die Aufgabe mehr Sinn machen.


----------



## marik (30. Nov 2010)

So lautet die ganze Aufgabe:
Schreiben Sie ein Java Programm, das analog zum Beispiel MinSort der Vorlesung ein array dadurch aufsteigend sortiert, dass wiederholt der maximale Wert aus dem unerledigten vorderen Teil des arrays gesucht und nach hinten getauscht wird.

Ihr Programm soll für Zeichenreihen (Typ String - also lexikographische Ordnung) und nicht für int-Werte definiert sein, und die zu sortierende Folge von Strings soll dem Programm als Kommandozeilenargument übergeben werden. Also zB das Kommando

java Bsp14 Proseminar Einfuehrung Programmierung Blatt07

liefert die Ausgabe

Blatt07 Einfuehrung Programmierung Proseminar 

Fehlt die Eingabe, so soll das Programm ohne Ausgabe ordentlich terminieren (und nicht einen Laufzeitfehler erzeugen!). 




```
public class Bsp14{
  public static void main (String[] args){
  
       System.out.println("Gib");
  String wort, aktuell, hilf, pos2;
  
  int n = SavitchIn.readInt();
  
  String[] array = new String[n]; // Groesse
       
		 	 
	 System.out.print("java Bsp14 ");
	 
	 
  for ( int i =0; i < array.length; i++){  // Belegung
         
			wort = SavitchIn.readWord();
		
		   array[i] = wort;
			/*
                            if ( array[]){
       
		 System.out.println("Array muss gefuellt werden");
	    
		 System.exit(0);
		 }
*/

		  
  }
           
  
  for ( int i = 0; i < array.length -1; i++){ // Sortierung
  			  aktuell = array[i];
			
		
  for ( int j = i+1; j < array.length; j++){
  			  pos2 = array[j];
  			 
			 if (pos2.compareTo(aktuell) < 0){
					aktuell = array[j];
  
  				hilf = array[i];    // Nach vorne tauschen
				array[i] = array[j];
				array[j] = hilf;
		   }
		}
    }
  
  for(int k = 0; k < array.length; k++){
  
  System.out.print(array[k] + " ");
   }
  
  System.out.println();
 }
}
```


----------



## marik (30. Nov 2010)

Ich weiss nicht wie soll es gehen als Kommandozeilenargument übergeben.


----------



## XHelp (30. Nov 2010)

Das kannst du in jedem Anfängerbuch nachlesen, z.B.: Galileo Computing :: Java ist auch eine Insel (8. Auflage) – 3.11 Der Einstiegspunkt für das Laufzeitsystem: main()
Du musst nichts über die Konsole einlesen, denn alles was du brauchst, bekommst du schon.
Und dann kannst du es wie folgt machen:

```
if (args.length>0) {
  //sortieren
} else {
  System.out.println("Keine Eingabe");
}
```


----------



## marik (30. Nov 2010)

Danke sehr. Hab alles verstanden und geschafft.Vielen Dank für die Hilfe.


----------

