# Programm vorzeitig beenden



## Donta (7. Nov 2007)

Nabend Leute, habe mal wieder ne frage. 

```
while (auswahl!=0) {
          auswahl = interaktion();
          if (auswahl==1) {
            field = feld_unsort;
            break;
          }
          if (auswahl==2) {
            field = feld_aufst;
            break;
          }
          if (auswahl==3) {
            field = feld_abst;
            break;
          }
          if (auswahl==0) break;
        }
```
wenn auswahl=0 ist, wird die schleife beendet, allerdings wird dann der nächste punkt in meinem programm gestartet. 
Gibt es statt dem "break;" eine möglichkeit, die das komplette programm (konsole) beendet?
Denn bei der auswahl=0; soll mein programm nicht nur die while-schleife verlassen und zur nächsten funktion innerhalb der methode springen, sondern die komplette methode bzw das komplette programm beenden.
geht soetwas?

Gruß Donta


----------



## Der Müde Joe (7. Nov 2007)

System.exit(0);


----------



## SlaterB (7. Nov 2007)

Operation beenden: return;
Programm beenden: System.exit(0);


----------



## André Uhres (7. Nov 2007)

Alle breaks und letztes if raus!
Nach der Schleife:
if(auswahl!=0) {
EDIT: while Bedingung dann aber auch noch anpassen: auswahl < 0 || auswahl > 3


----------



## Donta (7. Nov 2007)

Warum sollen die alle raus? funktioniert ja soweit. Und auch wenn ich sie rausnehme und eine weitere if-abfrage nach der while-schleife schalte, dann weiß ich noch immer nicht wie ich das Programm beenden kann. 
Das System.exit(0); beendet auch nur die Schleife und nicht alles nachfolgende.


----------



## SlaterB (7. Nov 2007)

> Das System.exit(0); beendet auch nur die Schleife und nicht alles nachfolgende.

naja, da machst du was falsch, vielleicht vergisst du Klammern bei einem if oder ähnliches,

wo immer du System.exit(0); bisher hast, schreibe dort (mit den Klammern!)
{
System.out.println("gleich machts bumm");
System.exit(0); 
System.out.println("nach exit");
}

und du wirst weder die Meldung 'nach exit' noch irgendwas sonst von diesem Programm jemals hören


----------



## Donta (7. Nov 2007)

```
if (auswahl==0) {
          

          System.out.println("gleich machts bumm");
          System.exit(0);
          System.out.println("nach exit");
     }
```

so sieht das ende der while-schleife jetzt aus und nachwievor beendet das ganze nur die while-schleife. 
Das "nach exit" krieg ich somit logischerweise nicht mehr zu gesicht, aber die nachfolgenden methoden werden weiterhin aufgerufen.
Klammern habe ich nicht vergessen - der code ist noch recht übersichtlich und deshalb kann ich das versichern.


----------



## André Uhres (7. Nov 2007)

```
package basics;

import java.util.*;

public class Test {

    private int auswahl = -1,  feld_abst,  feld_aufst,  feld_unsort;
    private int field;
    private Scanner in = new Scanner(System.in);

    public Test() {
        while (auswahl < 0 || auswahl > 3) {
            auswahl = interaktion();
            if (auswahl == 1) {
                field = feld_unsort;
            }
            if (auswahl == 2) {
                field = feld_aufst;
            }
            if (auswahl == 3) {
                field = feld_abst;
            }
        }
        if (auswahl != 0) {
            System.out.println(auswahl);
        } else {
            System.out.println("exit");
        }
    }

    public static void main(String[] args) {
        new Test();
    }

    private int interaktion() {
        return  in.nextInt();
    }
}
```
vergleichen geht mit == (nicht mit =) :wink:


----------



## Donta (7. Nov 2007)

ja der =  <--> == fauxpas is mir auch grade aufgegangen, da habe ich mein edit schnell noch entfernt bevor es jdm. auffällt-  zu spät scheinbar. 
Danke für die große Mühe.
Inzwischen läuft soweit erstmal alles.


----------

