Das überarbeitete Programm steht unten.
Die Überprüfung des Inputs wird mit einer if-else
-Anweisung vorgenommen:
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(); if( n >= 0.0 ) { 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 ) ; } else System.out.println("Geben Sie bitte eine positive Zahl ein."); } }
Wird das Programm funktionieren, wenn der Anwender 0 eingibt?