Lösungsvorschlag Exkurs Math - Aufgabe 1

Aus ComeniusWiki
Wechseln zu: Navigation, Suche
public void pythagoras(){
   Scanner eingabe = new Scanner (System.in);
   System.out.print ("Geben Sie die Länge der ersten Seite ein: ");
   int a = eingabe.nextInt();
   System.out.print ("Geben Sie die Länge der zweiten Seite ein: ");
   int b = eingabe.nextInt();
   if(a<0|| b<0) {System.out.println("Negative Eingabe nicht möglich! "); pythagoras () ;}
   else {System.out.println("Die Länge der dritten Seite beträgt "+Math.sqrt(Math.pow(a,2)+Math.pow(b,2)));}
}

Im Rumpf der if-Anweisung ruft sich bei einer falschen Eingabe nach dem entsprechenden Hinweis die Methode selbst auf (pythagoras()). Das hat den Vorteil, dass nach dem Fehlerhinweis sofort wieder eine Eingabeaufforderung auf der Konsole angezeigt wird.
Man könnte das Ergebnis auch zuerst in eine Variable schreiben lassen und dann ausgeben. Dies empfiehlt sich bei komplexen Berechnungen:

double c = Math.sqrt(Math.pow(a,2)+Math.pow(b,2));
System.out.println("Die Länge der dritten Seite beträgt "+c);

Alternative Lösung (spezielle Methode aus dem Math-package):

public void pythagoras (){
System.out.print ("Geben Sie die Länge Kathete a ein: ");
double a=eingabe.nextDouble();
System.out.print ("Geben Sie die Länge Kathete b ein: ");
double b=eingabe.nextDouble();
if(a<0|| b<0) {System.out.println("Negative Eingabe nicht möglich! "); pythagoras () ;}
else{System.out.println("Die Länge der Hypothenuse des Dreiecks ist "+Math.hypot(a,b)+".");};}