Eine gute Antwort wäre:

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.io.*;
class  Quadratwurzel
{
  public static void main( String[] args ) throws IOException
  {
    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
    String nChars;
    BufferedReader stdin =
        new BufferedReader( new InputStreamReader(System.in) );
    System.out.println("Geben Sie eine Zahl ein:");
    nChars = stdin.readLine();
    n      = Double.parseDouble( nChars );

    _____________________________________

    {
      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:

Füllen Sie 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.

Inhaltsverzeichnis