Programm vorzeitig beenden

Status
Nicht offen für weitere Antworten.

Donta

Mitglied
Nabend Leute, habe mal wieder ne frage.
Code:
 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
 
Operation beenden: return;
Programm beenden: System.exit(0);
 
Alle breaks und letztes if raus!
Nach der Schleife:
if(auswahl!=0) {
EDIT: while Bedingung dann aber auch noch anpassen: auswahl < 0 || auswahl > 3
 
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.
 
> 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 😉
 
Code:
     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.
 
Code:
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:
 
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.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben