import java.util.Scanner;

public class ExceptionDemoWaage
{
    private Waage waage;

    public ExceptionDemoWaage()
    {
        waage = new Waage();

        gewichtEinlesen();
        groesseEinlesen();
        werteAusgeben();
    }

    public void gewichtEinlesen()
    {
        Scanner scanner = new Scanner(System.in);
        boolean gueltig = false;

        while (!gueltig)
        {
            try
            {
                System.out.print("Geben Sie das Gewicht ein: ");
                double gewicht = scanner.nextDouble();

                waage.setGewicht(gewicht);
                gueltig = true;
            }
            catch (IllegalArgumentException ausnahme)
            {
                System.out.println("Fehler: " + ausnahme.getMessage());
                System.out.println("Bitte versuchen Sie es noch einmal.");
            }
        }
    }

    public void groesseEinlesen()
    {
        Scanner scanner = new Scanner(System.in);
        boolean gueltig = false;

        while (!gueltig)
        {
            try
            {
                System.out.print("Geben Sie die Größe ein: ");
                double groesse = scanner.nextDouble();

                waage.setGroesse(groesse);
                gueltig = true;
            }
            catch (IllegalArgumentException ausnahme)
            {
                System.out.println("Fehler: " + ausnahme.getMessage());
                System.out.println("Bitte versuchen Sie es noch einmal.");
            }
        }
    }

    public void werteAusgeben()
    {
        System.out.println();
        System.out.printf("Gewicht      : %5.1f kg %n",    waage.getGewicht());
        System.out.printf("Groesse      : %5.1f cm %n",    waage.getGroesse());
        System.out.printf("Idealgewicht : %5.1f kg%n",     waage.getIdealgewicht());
        System.out.printf("BMI          : %5.1f kg/qm %n", waage.getBMI());
    }

    public static void main(String[] args)
    {
        new ExceptionDemoWaage();
    }
}