class fehler extends Exception { // Klass definieren für Exception ungueltigeZahlen
public fehler() {}
public fehler(String meldung){
super(meldung);
}
}
public class Aufgabe1
{
/* global members */
/******************/
/** Fehleranzeige beim Konvertieren zu Integerwerten */
static final int ERR_INT_BAD_VALUE = -2147483647;
/** Fehleranzeige beim Konvertieren zu Doublewerten */
static final double ERR_DOUBLE_BAD_VALUE = -9.99e-99;
/** Eingabestream, welcher durch die statische Eingabemethoden verwendet wird */
static BufferedReader din;
/************************************************************************************/
/**
* Diese Funktion eröffnet den Eingabekanal vom aktuellen Fenster, von der Tastatur
* Der Handle wird statisch in der Klasse abgelegt
*/
static void OpenInput()
{
din = new BufferedReader(new InputStreamReader(System.in));
}
/************************************************************************************/
/**
* Liest eine String - Variable vom Eingabe - Stream und gibt sie zurück
* @return eingelesener String
*/
static String ReadString()
{
String a="";
try {
a = din.readLine();
} catch (IOException e1) {
System.out.print ("Ungueltige Eingabe!!\n");
}
return (a);
}
/************************************************************************************/
/**
* Liest eine Integer - Variable vom Eingabe - Stream und gibt sie zurück
* @return eingelesener Integerwert oder ERR_INT_BAD_VALUE
*/
static int ReadInt()
{
int a=ERR_INT_BAD_VALUE;
try {
a = Integer.parseInt(din.readLine());
} catch (IOException e1) {
System.out.print ("Ungueltige Eingabe!!\n");
} catch (NumberFormatException e2){
System.out.print ("Ungueltige Eingabe!!\n");
}
return (a);
}
/************************************************************************************/
/**
* Liest eine Double - Variable vom Eingabe - Stream und gibt sie zurück
* @return eingelesener Doublewert oder ERR_DOUBLE_BAD_VALUE
*/
static double ReadDouble()
{
double a=ERR_DOUBLE_BAD_VALUE;
try {
a = Double.parseDouble(din.readLine());
} catch (IOException e1) {
System.out.print ("Ungueltige Eingabe!!\n");
} catch (NumberFormatException e2){
System.out.print ("Ungueltige Eingabe!!\n");
}
return (a);
}
static int StringToInt(String s) {
int x;
try {
x = Integer.parseInt(s); //buildin function verwenden
} catch (Exception e) {
x = ERR_INT_BAD_VALUE;
}
return (x);
}//StringToInt
static double rechnung (double a, double b, double c, double res) throws fehler //Funktion
{
if(c== 0 || (a-b)<0){
throw new fehler();
}else{
res=(Math.sqrt(a-b))/c;
}return(res);
}
static String funktion1 (String a)
{
System.out.println("bitte zahl a eingeben"); //Ausgabe
a=ReadString(); //Wert in Variable speichern
return(a);
}
static String funktion2 (String b)
{
System.out.println("bitte zahl b eingeben"); //Ausgabe
b=ReadString(); //Wert in Variable speichern
return(b);
}
static String funktion3 (String c)
{
System.out.println("bitte zahl c eingeben"); //Ausgabe
c=ReadString(); //Wert in Variable speichern
return(c);
}
public static void main (String [] args) throws Exception {
OpenInput();
String a="a";
String b="b"; //Variable deklarieren
String c="c";
double zahla;
double zahlb;
double zahlc;
double res=0;
String fun1;
String fun2;
String fun3;
do{
fun1=funktion1(a); //Wert in Variable speichern
if(fun1.equals("bye")){ //if-schleife, fals bye eigegeben wurde das programm beenden
System.out.println("Das Programm wurde beendet"); //Ausgabe
}else{
fun2=funktion2(b);
fun3=funktion3(c);
try{
zahla=Double.parseDouble(a);
zahlb=Double.parseDouble(b);
zahlc=Double.parseDouble(c);
res=rechnung (zahla, zahlb, zahlc, res);
System.out.println(res);
}
catch(fehler e1){
System.out.println("Ungültige Texteingabe");
}
catch(NumberFormatException e1){
System.out.println("Ungültige Zahleneingabe");
}
}
}while(!fun1.equals("bye"));
}
}
das ist mein programm und ich will dass wenn ich in den 3 variablen TEXT eingebe das die fehlermeldung kommt UNGÜLTIGE TEXTEINGABE aber es funktioniert nicht es kommt imme UNGÜLTIGE ZAHLENEINGABE wieso? wo liegt der fehler?
danke