# Programm beenden via Benutzereingabe



## joni (18. Feb 2010)

Hallo,

ich lasse ein Program (als Übung) von der Konsole aus laufen und will per Benutzereingabe das Programm anhalten also z.b

ich mach es mit mytools.jar

wenn ich ein Input abfrage 


```
StdInput.readInt("Ja, Nein oder Beenden: ");
```

dass es das programm dann beendet, hab schon reichlich rum gesucht aber nichts gefunden.

hab gelesen es geht mit 


```
System.exit(0);
terminate();
stop();
```


aber keine der oben genannten  befehlen funktioniert..

Habt ihr eine Idee?

Gruss


----------



## SlaterB (18. Feb 2010)

worum gehts denn jetzt,
du hast zwei  völlig separate Themen, am besten nicht vermischen,

1.)
zum einen hat man die Benutzereingabe, lesen, Eingabe prüfen, Aktion ausführen, das kannst du testen zusammen mit einem Ergebnis
System.out.println("jetzt ist gleich ende");
funktioniert soweit alles?

-------

2.)
so, jetzt wo das obige funktioniert kann man System.exit(0) verwenden,
du sagst bei dir geht's nicht?

bekommst du bei

```
System.out.println("jetzt ist gleich ende");
System.exit(0);
System.out.println("das hier ist nie zu sehen");
```
beide Ausgaben auf der Konsole?
wenn ja: erstaunlich
wenn nein dann sicher die erste Ausgabe doch auch nicht, dann wieder zurück zu 1.)


----------



## Atze (18. Feb 2010)

also mit System.exit(0) sollte es gehen


```
import java.util.Scanner;

public class EndConsole {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		while(sc.hasNext()){
			String input = sc.next();
			if(input.equalsIgnoreCase("exit")){
				System.exit(0);
			}
			else{
				System.out.println(input);
			}
		}
	}
}
```


----------



## ARadauer (18. Feb 2010)

wahrscheinlich hast du sowas...


```
String eingabe = StdInput.readInt("Ja, Nein oder Beenden: ");
     if(eingabe == "Beenden"){
        mach was
     }
```
wird aber nicht klappen, da man objekte mit equals vergleicht...


```
if("Beenden".equalsIgnoreCase(eingabe)){
        mach was
     }
```
wie slater schon sagt wird dein System.exit sicher nicht ausgeführt...


----------



## eRaaaa (18. Feb 2010)

joni hat gesagt.:


> hab gelesen es geht mit
> 
> 
> ```
> ...



Oder eine RuntimeException werfen


----------



## joni (18. Feb 2010)

Danke schonmal für die schnellen Antworten,

ich habe verstanden was du meinst slater, hat auch alles soweit funktioniert. 

@ aradauer, genau so was such ich 

```
String eingabe = StdInput.readInt("Ja, Nein oder Beenden: ");
     if(eingabe == "Beenden"){
        mach was
     }
```
aber ich begreiff nicht ganz wieso das nicht geht?

und das
	
	
	
	





```
if("Beenden".equalsIgnoreCase(eingabe)){
        mach was
     }
```
begreiff ich nicht ganz wie dass funktionieren soll?

sorry bin ein rechter noob :bahnhof:


----------



## eRaaaa (18. Feb 2010)

String sind Objekte...wenn du den Inhalt vergleichen willst musst du die Methode equals benutzen! String bietet noch eine Methode equalsIgnoreCase an, um Groß-Kleinschreibung zu ignorieren:

http://www.java-forum.org/top-fragen/1350-vergleichen-strings.html
String.html#equalsIgnoreCase(java.lang.String)


----------



## Atze (18. Feb 2010)

joni hat gesagt.:


> begreiff ich nicht ganz wie dass funktionieren soll?




```
if("Beenden".equalsIgnoreCase(eingabe)){
        System.exit(0);
}
```


----------



## joni (18. Feb 2010)

ahhh alles klar...

sorry hab mich vorhin vertippt das sollte natürlich 

String eingabe = StdInput.readString("Ja, Nein oder Beenden: ");

heissen und nicht 

String eingabe = StdInput.readInt("Ja, Nein oder Beenden: ");

So hats jetzt funktioniert


```
if(eingabe.equalsIgnoreCase("Beenden")){
	                System.exit(0);
		    	}
	                else System.out.println("blablabla");
		   }
```

Vielen Dank für die Hilfe und Geduld.

:toll:


----------

