Programmablauf von vorne beginnen und manuell beenden

stylegangsta

Bekanntes Mitglied
Hi,
bin noch Anfänger und habe just4fun im wahrsten Sinne des Wortes folgendes Mini-Programm geschrieben und einen totalen Blackout!

Java:
import java.util.*;

public class Umrechner {

	private static final double Umrechnungsaktor = 0.733;

	public static void main(String[] args) {
		Scanner sc = new Scanner (System.in);
		
		int KW = 0;
		int PS = 0;
		
		System.out.println("Bitte Leistung in KW eingeben, falls unbekannt, bitte 0 eingeben: ");
		KW = sc.nextInt();
		
		if (KW != 0) {
			System.out.printf("Das Fahrzeug hat %d KW und %.0f PS", KW, KW / Umrechnungsaktor);
		}
		else {
			System.out.println("Bitte Leistung in PS eingeben, falls unbekannt, bitte 0 eingeben: ");
			PS = sc.nextInt();
			if (PS != 0)
				System.out.printf("Das Fahrzeug hat %d PS und %.0f KW", PS, PS * Umrechnungsaktor);
		}
		sc.close();
		
		if ((KW == 0) && (PS == 0))
			System.out.println("Fehlerhafte Eingabe, mindestens 1 Wert muss größer als 0 sein!");
		}
	}

Wie schaffe ich es jetzt, dass falls beide Werte 0 sind (s. Zeile 27), das Programm wieder die Abfrage von oben startet oder das es bei bedarf zum mit der "b" beendet werden kann.
Es soll also nicht bloß die Ausgabe erscheinen, dass es beendet wurde, sondern soll wirklich beendet werden ohne dass ich in eclipse das rote Stop Zeichen anklicken muss.
Danke im Voraus
 
Zuletzt bearbeitet:

stylegangsta

Bekanntes Mitglied
Ich habe es jetzt hinbekommen, bis auf das manuelle Beenden (noch nicht versucht) funktioniert es jetzt, wie es soll.

Java:
do {
			System.out.println("Bitte Leistung in KW eingeben, falls unbekannt, bitte 0 eingeben:");
			KW = sc.nextInt();
			if (KW != 0) 
				System.out.printf("Das Fahrzeug hat %d KW / %.0f PS", KW, KW / Umrechnungsaktor);
			
			else
				System.out.println("Bitte Leistung in PS eingeben, falls unbekannt, bitte 0 eingeben:");
				PS = sc.nextInt();
				if (PS != 0)
					System.out.printf("Das Fahrzeug hat %d PS / %.0f KW", PS, PS * Umrechnungsaktor);
		}
		
				while ((KW == 0) && (PS == 0));
					System.out.println("Fehlerhafte Eingabe, mindestens 1 Wert muss größer als 0 sein!");
					sc.close();

Was ich allerdings nicht verstehe: "Fehlerhafte Eingabe, mindestens 1 Wert muss größer als 0 sein!" wird nicht ausgegeben, sondern direkt "Bitte Leistung in KW eingeben, falls unbekannt, bitte 0 eingeben:"
 
Zuletzt bearbeitet:

stylegangsta

Bekanntes Mitglied
Habe es hinbekommen. Danke nochmal für die Hilfestellung. Es war einfach auf einmal irgendwie alles weg.

Java:
				if
					((KW == 0) && (PS == 0))
					System.out.println("Fehlerhafte Eingabe, mindestens 1 Wert muss größer als 0 sein!");
		}
		
					while
						((KW == 0) && (PS == 0));
					sc.close();
	}
}
 
Zuletzt bearbeitet:

arilou

Bekanntes Mitglied
Entspricht aber eigentlich nicht deinem ursprünglichen Wunsch.
Der müsste vor Schleifen-Ende nochmal nachfragen "Beenden('b') oder nicht(sonstige Eingabe)?"
und dann

// do {
} while( ! (endEingabe.equalsIgnoreCase( "b" )) );

oder so ähnlich lauten.
 

stylegangsta

Bekanntes Mitglied
Vielen Dank für die Antworten, habe heute in der Schule (Selbslerntag) das Programm mit einem Kollegen komplett anders fertiggestellt, mit Fenster und so, jetzt ist da nur der Fehler, dass es als jar wenn es läuft nicht über x beendet, sondern nur über das angefertigte Menü beendet werden kann. Habe aber den Code auf dem Rechner in der Schule vergessen. Poste ich morgen mal, wer Interesse daran hat.

Vielen Dank noch mal für eure Aufmerksamkeit, tolles Forum :D
 

Ähnliche Java Themen

Neue Themen


Oben