Hi Leute!
Ich beginne gerade damit, mich mit Java auseinander zu setzen.
Da ich heute bei der Arbeit ein wenig Luft hatte, und etwas Abwechslung brauchte, habe ich angefangen, einen Taschenrechner in Java zu erstellen.
Folgende Punkte hatte ich mir vorgestellt:
- Man kann mit dem Rechner die Grundrechenarten benutzen, also addieren, substrahieren, multiplizieren, dividieren.
- Man kann beliebig viele Zahlen einsetzen, also z.B. mit 3 Zahlen rechnen, aber auch mit 10.
- Man soll nach jeder Zahl eine Rechenart wählen können.
- Bei dem Versuch, etwas durch 0 zu dividieren, soll ein Fehler ausgegeben werden und der Schritt ausgelassen werden.
- Der Rechner soll das Endergebnis ausgeben.
Ich habe den Rechner soweit zum Laufen bekommen, er tut auch alles was er soll.
Nun wollte ich einmal fragen, ob hier jemand vll meinen Code Korrekturlesen kann, mir Verbesserungsvorschläge gibt, den Code vll optimiert, denn ich denke, der erste Programmcode ist ziemlich chaotisch ^^
Dadurch möchte ich sehen, worauf ich mehr achten sollte, was ich verbessern kann, blah blah ^^ Lernen eben..
So, hier einmal der Code..
Vielen Dank schonmal im voraus für eure Mühe
Ich beginne gerade damit, mich mit Java auseinander zu setzen.
Da ich heute bei der Arbeit ein wenig Luft hatte, und etwas Abwechslung brauchte, habe ich angefangen, einen Taschenrechner in Java zu erstellen.
Folgende Punkte hatte ich mir vorgestellt:
- Man kann mit dem Rechner die Grundrechenarten benutzen, also addieren, substrahieren, multiplizieren, dividieren.
- Man kann beliebig viele Zahlen einsetzen, also z.B. mit 3 Zahlen rechnen, aber auch mit 10.
- Man soll nach jeder Zahl eine Rechenart wählen können.
- Bei dem Versuch, etwas durch 0 zu dividieren, soll ein Fehler ausgegeben werden und der Schritt ausgelassen werden.
- Der Rechner soll das Endergebnis ausgeben.
Ich habe den Rechner soweit zum Laufen bekommen, er tut auch alles was er soll.
Nun wollte ich einmal fragen, ob hier jemand vll meinen Code Korrekturlesen kann, mir Verbesserungsvorschläge gibt, den Code vll optimiert, denn ich denke, der erste Programmcode ist ziemlich chaotisch ^^
Dadurch möchte ich sehen, worauf ich mehr achten sollte, was ich verbessern kann, blah blah ^^ Lernen eben..
So, hier einmal der Code..
Code:
import java.io.*;
class Taschenrechner {
static float rErg;
static char rOption;
static float addieren (float ergebnis, float rZahl) {
ergebnis += rZahl;
return ergebnis;
}
static float substrahieren (float ergebnis, float rZahl) {
ergebnis -= rZahl;
return ergebnis;
}
static float multiplizieren (float ergebnis, float rZahl) {
ergebnis *= rZahl;
return ergebnis;
}
static float dividieren (float ergebnis, float rZahl) {
if (rZahl == 0) {
System.out.println("Fehler! Es kann nicht durch Null dividiert werden! Der Vorgang wird übersprungen!");
}
else {
ergebnis /= rZahl;
}
return ergebnis;
}
static float rechne (char rArt, float ergebnis, float rZahl) {
switch (rArt) {
case '+':
Taschenrechner.rErg = addieren(ergebnis, rZahl);
break;
case '-':
Taschenrechner.rErg = substrahieren(ergebnis, rZahl);
break;
case '*':
Taschenrechner.rErg = multiplizieren(ergebnis, rZahl);
break;
case '/':
Taschenrechner.rErg = dividieren(ergebnis, rZahl);
break;
}
return Taschenrechner.rErg;
}
static boolean checkRArt (char rArt) {
boolean rCheck = false;
switch (rArt) {
case '+':
case '-':
case '*':
case '/':
rCheck = true;
break;
}
return rCheck;
}
public static void main (String[] args) throws IOException {
float erg = 0;
int aZahlen;
float zahl;
boolean status = true;
BufferedReader stdin = new BufferedReader(
new InputStreamReader( System.in ) );
String option;
String aZahlenS;
String eingabe;
do {
System.out.print("Wieviele Zahlen moechtest du eingeben: ");
aZahlenS = stdin.readLine();
aZahlen = Integer.parseInt(aZahlenS);
if (aZahlen < 2) System.out.println("Fehler! Du musst mindestens 2 Zahlen angeben!");
} while (aZahlen < 2);
float[] zahlen = new float[aZahlen];
for (int i=0; i < aZahlen; i++) {
if ((i+1) > 1) {
boolean checkRArt;
do {
System.out.print("Was moechtest du mit der Zahl machen?");
option = stdin.readLine();
char options = option.charAt(0);
checkRArt = checkRArt(options);
Taschenrechner.rOption = options;
} while (checkRArt = false);
}
System.out.print("Gebe die " + (i+1) + ".Zahl ein: ");
eingabe = stdin.readLine();
zahlen[i] = Float.parseFloat(eingabe);
zahl = zahlen[i];
if (i == 0) erg = zahl;
else {
erg = rechne(Taschenrechner.rOption, erg, zahl);
}
}
/*for (int i=0; i < aZahlen; i++) {
System.out.print("Gebe die " + (i+1) + ".Zahl ein: ");
eingabe = stdin.readLine();
zahlen[i] = Integer.parseInt(eingabe);
if ((i + 1 != aZahlen) {
boolean checkRArt;
do {
System.out.print("Was moechtest du mit der Zahl machen?");
option = stdin.readLine();
char options = option.charAt(0);
checkRArt = checkRArt(options);
} while (checkRArt = false);
}
}*/
System.out.println("Dein Ergebnis ist: " + erg);
}
}
Vielen Dank schonmal im voraus für eure Mühe