Wir sind gerade in Java bei Ausnahmebehandlung, dazu sollen wir ein kleines Programmgeschrieben was folgendes macht:
Schreiben Sie nun ein Anwendungsprogramm, in dem vom Benutzer erfragt wird, welche Operation auf welchen Zahlen durchgeführt werden soll und welches anschließend die entsprechende Methode aufruft und behandeln sie die Ausnahmen
Hab ich soweit fertig. Mir fehlt jedoch noch folgende Exception: Fehlende Eingaben: Der Anwender gibt einen oder beide Parameter nicht ein
Also wenn er einfach statt irgendwas einzugeben enter drückt.
Vielleicht hat kann mir einer ein wenig helfen. Thx
Schreiben Sie nun ein Anwendungsprogramm, in dem vom Benutzer erfragt wird, welche Operation auf welchen Zahlen durchgeführt werden soll und welches anschließend die entsprechende Methode aufruft und behandeln sie die Ausnahmen
Hab ich soweit fertig. Mir fehlt jedoch noch folgende Exception: Fehlende Eingaben: Der Anwender gibt einen oder beide Parameter nicht ein
Also wenn er einfach statt irgendwas einzugeben enter drückt.
Java:
import java.util.*;
public class ArithmOp
{
/** fuehrt eine Division zwischen zwei uebergebenen Parametern durch
*
* @param zaehler --> Typ double, ueber dem Bruchstrich
* @param nenner --> Typ double, unter dem Bruchstrich
* @return --> gibt das Ergebnis der Division zurueck, Typ double
*/
public static double dividiere(double zaehler, double nenner)
{
Double ergebnis = new Double(zaehler / nenner);
if (ergebnis.isInfinite())
throw new ArithmeticException();
return (zaehler / nenner);
}
/** zieht die Wurzel eines uebergebenen Parameters
*
* @param zahl --> Typ int, die Zahl aus der die Wurzel gezogen werden soll
* @return --> gibt das Ergebnis des Wurzelziehens zurueck, Typ double
*/
public static double zieheWurzel(int zahl)
{
Double ergebnis = new Double(Math.sqrt(zahl));
if (ergebnis.isNaN())
throw new ArithmeticException();
return Math.sqrt(zahl);
}
public static void main (String [] args)
{
Scanner keyboard = new Scanner(System.in);
int eingabe = 0;
double ergebnis = 0;
// Frage den Benutzer welche arithmetische Operation durchgefuehrt werden soll
System.out.println("Welche artithmetische Operation moechten Sie durchfuehren?");
System.out.println("0.\tProgramm beenden ");
System.out.println("1.\tDivision");
System.out.println("2.\tWurzel");
System.out.print("Eingabe: ");
// Eingabe des Benutzers muss ein Integer-Wert sein, ansonsten Exception ausloesen
try
{
eingabe = keyboard.nextInt();
}
catch (InputMismatchException e1)
{
System.out.println("Keine gueltige Auswahl! Bitte nur Integer-Werte (ganze Zahlen) eingeben!");
}
// ueberpruefe die Eingabe des Benutzers --> Welche Operation wurde ausgewaehlt?
switch (eingabe)
{
// Programm soll beendet werden
case 0:
{
System.out.print("Vielen Dank. Auf Wiedersehen!");
}
break;
// Division soll durchgefuehrt werden
// Eventuell auftretende Exceptions werden abgefangen.
case 1:
try
{
System.out.print("Bitte geben Sie den Zaehler ein: ");
int zaehler = keyboard.nextInt();
System.out.print("Bitte geben Sie den Nenner ein: ");
int nenner = keyboard.nextInt();
ergebnis = dividiere(zaehler, nenner);
System.out.println("Das Ergebnis ist: " + ergebnis);
}
catch (InputMismatchException e2)
{
System.out.println("Bitte nur Integer-Werte eingeben!");
}
catch (ArithmeticException e2)
{
System.out.println("Division durch 0 nicht erlaubt!");
}
break;
// Wurzelziehen soll durchgefuehrt werden
// Eventuell auftretende Exceptions werden aufgefangen
case 2:
try
{
System.out.print("Bitte geben Sie eine Zahl ein, von der die Wurzel gezogen werden soll: ");
int zahl = keyboard.nextInt();
ergebnis = zieheWurzel(zahl);
System.out.println("Das Ergebnis ist: " + ergebnis);
}
catch (InputMismatchException e3)
{
System.out.println("Bitte nur Integer-Werte eingeben!");
}
catch (ArithmeticException e3)
{
System.out.println("Die Wurzel einer negativen ganzen Zahl kann nicht gezogen werden");
}
break;
// Es wurde zwar ein Integer-Wert eingeben, dieser kann jedoch keiner gueltigen Auswahl
// zugeordnet werden
default:
System.out.println("Keine gueltige Auswahl getroffen. Das Programm wird beendet.");
}
}
}
Vielleicht hat kann mir einer ein wenig helfen. Thx