Hallo liebe User,
ich bin gerade frisch in die Java-Programmierung geraten und einer meiner ersten Versuche lässt mich schon verzweifeln.....
Das Programm soll einfach 2 Zahlen über die Console einlesen und diese dann nach auswahl des Operators berechnen und das Ergebnis ausgeben.
Ich habe das einlesen der Zahlen sowie des Strings für den Operator in 2 Klassen geparkt und greife dann in der Main-Klasse auf sie zu.
hier die 2 externen Klassen:
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class IO {
public static Double readInt()
{
BufferedReader in;
double zahl = 0;
String s;
boolean fehler = true;
while (fehler == true)
{
in = new BufferedReader(new InputStreamReader(System.in));
try
{
s = in.readLine();
zahl = Double.parseDouble(s);
fehler = false;
}
catch (Exception e)
{
System.out.println("Eingabe fehlerhaft "+ e.getMessage());
System.out.println();
System.out.println("Erneute Eingabe: ");
}
}
return zahl;
}
public static String readStr()
{
BufferedReader in1;
String sx = null;
boolean fehler2 = true;
while (fehler2 == true)
{
in1 = new BufferedReader(new InputStreamReader(System.in));
try
{
sx = in1.readLine();
fehler2 = false;
}
catch (Exception e)
{
System.out.println("Eingabe fehlerhaft "+ e.getLocalizedMessage());
System.out.println();
System.out.println("Erneute Eingabe: ");
}
}
return sx;
}
}
und hier dann die Main-Klasse:
public class Main {
public static void main(String[] args){
System.out.println("Dieses Programm berechnet 2 Zahlen");
System.out.println("Bitte gebens Sie die erste Zahl ein: ");
double zahl1;
zahl1 = IO.readInt();
System.out.println("Bitte geben Sie die zweite Zahl ein: ");
double zahl2;
zahl2 = IO.readInt();
System.out.println("Bitte geben Sie die Rechenart an (+,-,*,/): ");
String rechenart;
rechenart = IO.readStr();
System.out.println("Sie haben die Rechenart "+ rechenart + " gewählt.");
//bis hier alles ok
System.out.println();
System.out.println("Das Ergebnis ist: ");
if (rechenart == "+")
{
System.out.println(zahl1 + zahl2);
}
else
if (rechenart == "-")
{
System.out.println(zahl1 - zahl2);
}
else
if (rechenart == "*")
{
System.out.println(zahl1 * zahl2);
}
else
System.out.println(zahl1 / zahl2);
}
}
das Programm läuft problemlos bis zum if part ab und spuckt auch ein Ergebniss aus jedoch immer nur das else ( zahl1 / zahl2).
Da ich noch relativ unerfahren bin hab ich leider nicht die geringste Ahnung wo ich etwas falsch gemacht haben könnte.
Eine Vermutung habe ich dennoch, evtl. könnte es an der Übergabe des Strings liegen....?!
für baldige Hilfe wäre ich sehr dankbar...
Gruß Kestrel
ich bin gerade frisch in die Java-Programmierung geraten und einer meiner ersten Versuche lässt mich schon verzweifeln.....
Das Programm soll einfach 2 Zahlen über die Console einlesen und diese dann nach auswahl des Operators berechnen und das Ergebnis ausgeben.
Ich habe das einlesen der Zahlen sowie des Strings für den Operator in 2 Klassen geparkt und greife dann in der Main-Klasse auf sie zu.
hier die 2 externen Klassen:
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class IO {
public static Double readInt()
{
BufferedReader in;
double zahl = 0;
String s;
boolean fehler = true;
while (fehler == true)
{
in = new BufferedReader(new InputStreamReader(System.in));
try
{
s = in.readLine();
zahl = Double.parseDouble(s);
fehler = false;
}
catch (Exception e)
{
System.out.println("Eingabe fehlerhaft "+ e.getMessage());
System.out.println();
System.out.println("Erneute Eingabe: ");
}
}
return zahl;
}
public static String readStr()
{
BufferedReader in1;
String sx = null;
boolean fehler2 = true;
while (fehler2 == true)
{
in1 = new BufferedReader(new InputStreamReader(System.in));
try
{
sx = in1.readLine();
fehler2 = false;
}
catch (Exception e)
{
System.out.println("Eingabe fehlerhaft "+ e.getLocalizedMessage());
System.out.println();
System.out.println("Erneute Eingabe: ");
}
}
return sx;
}
}
und hier dann die Main-Klasse:
public class Main {
public static void main(String[] args){
System.out.println("Dieses Programm berechnet 2 Zahlen");
System.out.println("Bitte gebens Sie die erste Zahl ein: ");
double zahl1;
zahl1 = IO.readInt();
System.out.println("Bitte geben Sie die zweite Zahl ein: ");
double zahl2;
zahl2 = IO.readInt();
System.out.println("Bitte geben Sie die Rechenart an (+,-,*,/): ");
String rechenart;
rechenart = IO.readStr();
System.out.println("Sie haben die Rechenart "+ rechenart + " gewählt.");
//bis hier alles ok
System.out.println();
System.out.println("Das Ergebnis ist: ");
if (rechenart == "+")
{
System.out.println(zahl1 + zahl2);
}
else
if (rechenart == "-")
{
System.out.println(zahl1 - zahl2);
}
else
if (rechenart == "*")
{
System.out.println(zahl1 * zahl2);
}
else
System.out.println(zahl1 / zahl2);
}
}
das Programm läuft problemlos bis zum if part ab und spuckt auch ein Ergebniss aus jedoch immer nur das else ( zahl1 / zahl2).
Da ich noch relativ unerfahren bin hab ich leider nicht die geringste Ahnung wo ich etwas falsch gemacht haben könnte.
Eine Vermutung habe ich dennoch, evtl. könnte es an der Übergabe des Strings liegen....?!
für baldige Hilfe wäre ich sehr dankbar...
Gruß Kestrel