Auf Thema antworten

Ich habe ein wenig Erfahrung in C++ (2 Jahre Schulunterricht).

Habe nun den Code etwas abgeändert und eine IF Abfrage eingefügt, die aber nicht funktioniert.


[code=Java]


import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;


public class Taschenrechner {

    public static void main(String[] args) throws IOException


    {

        String wahr = "j";

        double e = 0;

        double zahl1 = 0;

        double zahl2 = 0;

        String y = null;

        String x = null;

        String r = "  %10.3f%n%s %10.3f%n------------%n%s %10.3f %n";

        BufferedReader input = new BufferedReader(new InputStreamReader(

                System.in));

        do {

            do {


                if ("j".equalsIgnoreCase(wahr))

                    ;

                {


                    System.out.println("Bitte geben Sie Ihre erste Zahl ein:");


                    String str1 = input.readLine();

                    try {

                        zahl1 = Double.parseDouble(str1);

                    } catch (NumberFormatException e1) {

                        // TODO Auto-generated catch block

                        e1.printStackTrace();

                    }

                }


                System.out.println("Bitte geben Sie Ihre zweite Zahl ein:");

                String str2 = input.readLine();

                zahl2 = 0;

                try {

                    zahl2 = Double.parseDouble(str2);

                } catch (NumberFormatException e1) {

                    // TODO Auto-generated catch block

                    e1.printStackTrace();

                }


                System.out

                        .println("Geben Sie bitte an, mit welcher Rechenart Sie diese Zahlen berechnen moechten.");

                System.out.println("a fuer Addition");

                System.out.println("s fuer Subtraktion");

                System.out.println("m fuer Multiplikation");

                System.out.println("d fuer Division");


                String z = input.readLine();


                switch (z) {


                case "a":

                    System.out

                            .println("Sie haben sich für die Addition entschieden.");

                    e = zahl1 + zahl2;

                    System.out.printf(r, zahl1, "+", zahl2, "=", e);

                    zahl1 = e;

                    break;

                case "s":

                    System.out

                            .println("Sie haben sich für die Subtraktion entschieden.");

                    e = zahl1 - zahl2;

                    System.out.printf(r, zahl1, "-", zahl2, "=", e);

                    zahl1 = e;

                    break;

                case "m":

                    System.out

                            .println("Sie haben sich für die Multiplikation entschieden.");

                    e = zahl1 * zahl2;

                    System.out.printf(r, zahl1, "*", zahl2, "=", e);

                    zahl1 = e;

                    break;

                case "d":

                    System.out

                            .println("Sie haben sich für die Division entschieden.");

                    e = zahl1 / zahl2;

                    System.out.printf(r, zahl1, "/", zahl2, "=", e);

                    zahl1 = e;

                    break;

                default:

                    System.out.println("Ihre Eingabe ist ungueltig.");


                }

                System.out

                        .println("Wollen Sie das Programm erneut starten? j=Ja / n=Nein");

                y = input.readLine();

                if ("j".equalsIgnoreCase(y))

                    ;

                {

                    zahl2 = 0;


                }


            } while ("j".equalsIgnoreCase(y));


            System.out

                    .println("Wollen Sie mit dem Ergebnis weiterrechnen? j=Ja / n=Beenden");

            x = input.readLine();

            if ("j".equalsIgnoreCase(x))

                ;

            {

                wahr = "n";

                zahl1 = e;

            }


        } while ("j".equalsIgnoreCase(x));


    }

}

[/code]


Eigentlich müsste beim 2ten Durchlauf, wenn ich nach der letzten Frage 'n' eingebe die erste Zahl nicht mehr angefordert werden. Leider passiert das Gegenteil und ich bin mir nicht sicher woran das liegen könnte.



Oben