zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

Da negative Zahlen keine Quadratwurzel haben, wäre die Schleife nicht in der Lage sie zu berechnen und sie würde endlos laufen.

Eingabe des Anwenders überprüfen

Es gibt mehrere Möglichkeiten mit fehlerhaften Input umzugehen. Eine Möglichkeit ist es n zu überprüfen. Wenn n OK ist, wird die Schleife ausgeführt, ansonsten wird eine Fehlermeldung auf den Bildschirm ausgegeben und das Programm wird beendet. Hier ist das überarbeitete Programm, mit ein paar Lücken:

import java.util.Scanner;
class  Quadratwurzel
{
  public static void main( String[] args )
  {
    final double FASTNULL = 1.0E-14 ;
    double n  ;               // der Anwender gibt n ein
    double schaetzung = 1.0 ; // die gleiche Schätzung funktioniert für jedes n

    // die Zahl vom Anwender holen
    Scanner scan = new Scanner( System.in );
    System.out.print("Geben Sie eine Zahl ein: ");
    n = scan.nextDouble();

    
    {
      while ( Math.abs( n/(schaetzung*schaetzung) - 1.0 ) > FASTNULL )
      {
         // einen neuen Wert für schaetzung berechnen
         schaetzung =  n/(2*schaetzung) + schaetzung/2 ;
      }

      System.out.println("Die Quadratwurzel von " + n + " ist " + schaetzung ) ;
    }
    
    

  }
}

FRAGE 18:

Wir füllen die Lücken aus, so dass das Programm die Eingabe des Anwenders überprüft, ob die Zahl positiv ist und eine Fehlermeldung ausgibt, wenn die Zahl negativ ist.