Programm beenden und Verweis an andere Stelle im Programm

  • Themenstarter Themenstarter joMa
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
J

joMa

Gast
Hallo zusammen,

ich habe 2 Fragen:

1.) Wie kann ich ein Java-Programm dazu bringen, sich zu beenden?
Ich habe in einem Skript den Befehl EndOfProgram(); gefunden, aber der Compiler kennt diesen nicht.


2.) Ich suche einen Befehl, mit dem ich an einer bestimmten Stelle im Programm an eine andere Stelle (z.B. zurück nach oben) springen kann. Sowas wie "goto Stelle_x;" und oben wird dann irgendwie die Stelle_x als Punkt definiert.

Vielen Dank schonmal

JoMa
 
1.
System.exit(0)

2.
ich habe zwar eine ungefähre Ahnung,
werde aber nicht nachschauen und selbst wenn ich es (leider) wüßte, würde ich dir das nicht nennen 😉
ganz übler Codestil, gewöhn dir das um Himmels Willen nicht an
 
SlaterB hat gesagt.:
2. ich habe zwar eine ungefähre Ahnung,
aber werde nicht nachschauen und selbst wenn ich es (leider) wüßte, würde ich dir das nicht nennen

Der Aussage kann ich mich zu 100% anschliessen.

Wenn du schon so krude programmieren willst, dann mußt du auch
in der Lage sein, selbst herauszubekommen, wie das zu machen ist.
😎
 
goto ist ein reserviertes Wort in Java

Die gute Nachricht ist: man kann es nicht benutzen, dabei sollte es auch bleiben.
 
Hallo,

dass goto nicht funktioniert, weiss ich.
Ich habe es auch nur hingeschrieben, um zu verdeutlichen, was ich machen möchte.

Stört euch nur das goto, oder die Idee an sich mit dem Verweis?

Ich möchte die Klasse mehrmals aufrufen.

Vermutlich wäre es eleganter, eine Oberklasse zu erstellen und aus dieser die Klasse, die wiederholt werden soll aufzurufen. Wenn die Unterklasse fertig ist, mit return zurück in die Oberklasse springen und die Unterklasse erneut aufrufen.
 
Ariol hat gesagt.:
2. klingt ein bisschen nach rekursion...

Wenn überhaupt dann Iteration.

Es finden keine Rücksprünge(1) nach einem erfolgten Rücksprung(2) statt.

(Ich hoffe ihr versteht den Unterschied zwischen den verschiedenen
Begriffen Rücksprung, die ich im obigen Satz verwendet habe; das
jetzt zu erklären, ist mir das Wochenende zu nahe. 😎 )
 
joMa hat gesagt.:
Stört euch nur das goto, oder die Idee an sich mit dem Verweis?

Die Idee an sich; es ist keine gute Idee, einfach so, irgendwohin zu springen.

joMa hat gesagt.:
Ich möchte die Klasse mehrmals aufrufen...
und die Unterklasse erneut aufrufen.

Was verstehst du unter eine Klasse aufrufen. ???:L
Nur Methoden werden aufgerufen. :meld:

Beschreib' doch mal genauer, was du vorhast oder
poste etwas Beispielcode, dann können wir dir auch sagen,
welcher Ansatz (außer goto) hier angebracht ist.
 
Leroy42 hat gesagt.:
Beschreib' doch mal genauer, was du vorhast oder
poste etwas Beispielcode, dann können wir dir auch sagen,
welcher Ansatz (außer goto) hier angebracht ist.

Kann ja auch Pseudo-Code mit Gotos sein
 
Ich habe ein Programm erstellt, das die Differenz zwischen 2 Uhrzeiten, die mithilfe der Tastatur eingegeben werden, ausrechnet.
Nun würde ich das Programm gerne so umändern, dass mehrere Differenzen ausgerechnet werden können, ohne das Programm neu starten zu müssen.
Ich könnte natürlich auch eine if-Abfrage einbauen, die so lange das Programm ausführt, bis man exit eingibt und dann das Programm beendet.

Anmerkung: SimpleInput ist eine Klasse, die Tastatureingaben einliest. lesen.nextLine() übergibt das Eingelesene beispielsweise als String

Vielen Dank für eure Mühen

Code:
class S1A5_mD		// Variante: die Uhrzeiten werden mit einem Doppelpunkt zw. Minuten und Stunden eingelesen
{
	public static void main (String[] args)
	{
	SimpleInput lesen;
	lesen = new SimpleInput();

	String text;
	String dp = ":";
	int d1 = 0;		// Index des ersten Doppelpunktes
	int d2 = 0;		// Index des zweiten Doppelpunktes

	int i = 0; // Array-Zählindex
	int helper;
	int ah;
	int ah1;
	int amin;
	int eh;
	int emin;
	int dh;
	int dmin;




//	Vorgehensweise

// String von Tastatur einlesen
// einzelne Character(Buchstaben,Zahlen...) aus String holen und in Array1 schreiben 
//			mit Klasse String, Methode getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) 
// einzelne Arrayelemente aus Array1 holen, in integer umwandeln und in Array2 schreiben
//			Klasse character, Methode getNumericValue(char ch)
// mit den einzelnen Arrayelementen ah, amin, eh und emin zusammenbauen
// Differenzen berechnen
// Ausgabe



	System.out.println ("Bitte zuerst Anfangs- und dann Endzeit eingeben.\nMitternacht bitte als 24 eingeben. Format hh:mm");
//	text = "anf 12:34 end 56:78";
	text = lesen.nextLine();
	System.out.println (text);


	
	
// Suche, wo die Doppelpunkte sind

	d1 =text.indexOf(dp, 0);
	d2 =text.indexOf(dp, d1+1);
	
	System.out.println("erster : bei Index " + d1);
	System.out.println("Zweiter : bei Index " + d2);	


	if (d1<0 || d2<0) 
		{
			System.out.println("Uhrzeiten bitte korrekt eingeben!");
			exit();
		}
		
	// Character aus String holen und jeden einzeln in ein Element des Arrays1 schreiben
	char[] Array1 = new char[8];
	text.getChars(d1-2, d1, Array1, 0);		// ah
	text.getChars(d1+1, d1+3, Array1, 2);		// amin
	text.getChars(d2-2, d2, Array1, 4);		// eh
	text.getChars(d2+1, d2+3, Array1, 6);		// emin		



	
// zeige Array1-Elemente an
	while (i<8)
		{
			System.out.println("Array1: Index Nummer " + i + "enthält Wert " + Array1[i]);

			i++;
		}



	// Wandeln der Array1-Character-Elemente in int und Schreiben in Array2
	int[] Array2 = new int[8];

	i = 0;

	while (i<8)
		{
			Array2[i] = Character.getNumericValue(Array1[i]);
			i++;
		}


		
	// mit den einzelnen Arrayelementen ah, amin, eh und emin zusammenbauen			


	ah = (Array2[0])*10 + Array2[1];
	amin = (Array2[2])*10 + Array2[3];

	eh = (Array2[4])*10 + Array2[5];
	emin = (Array2[6])*10 + Array2[7];


	System.out.println ("ah= "+ah);
	System.out.println ("amin= "+amin);
	System.out.println ("eh= "+eh);
	System.out.println ("emin= "+emin);




// Berechnen der Differenz

	dmin = emin - amin;
	dh = eh - ah;	
	System.out.println("zwischenerg dmin"+dmin);

	if (dmin<0)
	{
		dmin = dmin + 60;
		dh = dh - 1;
	}

	if (dh<0) dh = dh +24;
	System.out.println (" ");
	System.out.println ("Der Unterschied beträgt " + dh + "Stunden und " + dmin + "Minuten.");

	
	}
}
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben