Programmende über Konsolenzugriff

  • Themenstarter Themenstarter Robt
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
R

Robt

Gast
Hi Leute,
ich hab ein Problem, wobei mir langsam echt die Haare zu Berge stehen.
Also ich hab mein Programm/Problem mal vereinfacht um hier nicht ausschweifend zu werden.
Anforderung:
Das Programm soll 10Sekunden laufen und alle 2Sekunden eine Meldung ausgeben, wenn es noch läuft. Soweit so gut das ist nicht das Thema, aber wie bekomm ich es hin, dass ich über die Konsole "ende" eingebe und das Programm vor den 10Sekunden endet. Zu beachten ist dann aber, dass die Meldung trotzdem alle 2 Sekunden erscheint. Wäre echt super wenn mir jemand nen Tipp und nen Lösungshinweis geben könnte!!!

Mein bisheriger Quellcode:

Code:
public class timeProg extends Thread {
	

	String ausgabe = "Programmlauf, Meldung erfolgt alle 2sec.";
	
	public void run(){
		while(true){
			if(isInterrupted()){
				break;
			}
			printLine(ausgabe);
		}
	}
	
	private void printLine (String ausgabe){
		System.out.println(ausgabe);
		try{
			Thread.sleep(2000);
		}
		catch (InterruptedException e){
			interrupt();
		}
	}
		
	public static void main(String[] args) {
		timeProg time = new timeProg();
		time.start();
		try{
			Thread.sleep(10000);
		}
		catch (InterruptedException e){
			System.out.println("Ende");
		}
		time.interrupt();
	}
}

DANKE!!!
 
Ok vielleicht war die Formulierung ein bisschen unglücklich gewählt. Das Programm soll zwei Möglichkeiten haben zu beenden:
1. Es läuft die 10Sekunden durch und alle 2 Sekunden kommt die Meldung.
2. Man gibt über die Konsole "ende" ein und es beendet sofort ohne die 10 Sekunden durchzulaufen, jedoch bis zum Konsolenende soll die Meldung trotzdem alle 2 Sekunden erfolgen.

Hoffe es ist jetzt verständlicher!
 
Ist das gleiche in grün, sollte nur klar machen, dass das Programmende über die Konsole eingeleitet wird.
 
Ich hab grad ne göttliche Eingebung bekommen und es läuft jetzt, trotzdem dank dir!!! Vielleicht könnte mir einer sagen wie ich jetzt nur noch das Häckchen setze!
Hier noch der Quellcode:

Code:
public class timeProg extends Thread {
	
	String ausgabe = "Programmlauf, Meldung erfolgt alle 2sec.";
	
	public void run(){
		while(true){
			if(isInterrupted()){
				break;
			}
			printLine(ausgabe);
		}
	}
	
	private void printLine (String ausgabe){
		System.out.println(ausgabe);
		
		try{
			Thread.sleep(2000);
		}
		catch (InterruptedException e){
			interrupt();
		}
	}
		
	public static void main(String[] args) {
		timeProg time = new timeProg();
		time.start();
		abEnd();
		
		try{
			Thread.sleep(10000);
		}
		catch (InterruptedException e){
			System.out.println("Ende");
		}
		time.interrupt();
	}
	
	public static void abEnd(){
		String text = console.readString();

		if(text.equals("exit")){
			System.out.println("ENDE");
			System.exit(0);
		}
	}
}
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben