Hallo Community
Ich bin gerade dabei einen einfachen Taschenrechner zu programmieren.
So sieht mein Code aus, bestehend aus 3 Klassen.
Der Klasse Main.java, UserInteraction.java und Calculator.java.
Main.java
Calculator.java
UserInteraction.java
Der code funktioniert aber wenn ich das Programm ausführe geht es immer wieder in die while-Schleife rein und ich kann mir beim besten Willen nicht erklären wieso.
Vielen Dank
Gruss
Ich bin gerade dabei einen einfachen Taschenrechner zu programmieren.
So sieht mein Code aus, bestehend aus 3 Klassen.
Der Klasse Main.java, UserInteraction.java und Calculator.java.
Main.java
Java:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package elitecalculator;
/**
*
* @author
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
UserInteraction uia = new UserInteraction();
Calculator calc = new Calculator();
char oper;
uia.input();
calc.setZahlEins(uia.getZahlEins());
calc.setZahlZwei(uia.getZahlZwei());
oper = uia.getOperator();
System.out.println(oper);
while(oper != '+' || oper != '-' || oper != '*' || oper != '/') {
System.out.println("Eingabe ungültig, versuchen Sie es nochmal.");
uia.input();
}
if (oper == '+') {
calc.addition();
System.out.println("Das Resultat ist: " + calc.getResultat());
}
else if (oper == '-') {
calc.subtraktion();
System.out.println("Das Resultat ist: " + calc.getResultat());
}
else if (oper == '*') {
calc.multiplikation();
System.out.println("Das Resultat ist: " + calc.getResultat());
}
else if (oper == '/') {
calc.division();
System.out.println("Das Resultat ist: " + calc.getResultat());
}
else {
System.out.println("ERROR: Der eingegebene Operator ist ungültig. Der Operator muss entweder +, -, * oder / sein.");
}
}
}
Calculator.java
Java:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package elitecalculator;
/**
*
* @author
*/
public class Calculator {
private int zahlEins;
private int zahlZwei;
private int resultat;
public Calculator() {
this.zahlEins=0;
this.zahlZwei=0;
}
public void addition() {
this.resultat=this.zahlEins+this.zahlZwei;
}
public void subtraktion() {
this.resultat=this.zahlEins-this.zahlZwei;
}
public void multiplikation() {
this.resultat=this.zahlEins*this.zahlZwei;
}
public void division() {
this.resultat=this.zahlEins/this.zahlZwei;
}
public void setZahlEins(int zahl) {
this.zahlEins = zahl;
}
public void setZahlZwei(int zahl) {
this.zahlZwei = zahl;
}
public int getResultat() {
return this.resultat;
}
}
UserInteraction.java
Java:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package elitecalculator;
import java.io.*;
/**
*
* @author
*/
public class UserInteraction {
private String zahlEins;
private String zahlZwei;
private String operator;
public UserInteraction() {
this.zahlEins = "";
this.zahlZwei = "";
this.operator = "";
}
public void input() {
try {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Bitte geben Sie das gewünschte Verrechnungsverfahren an (+, -, * oder /).");
System.out.println("Addieren = +, Subtrahieren = -, Multiplizieren = *, Dividieren = /.");
this.operator = in.readLine();
System.out.println("Bitte geben Sie die erste Zahl ein:");
this.zahlEins = in.readLine();
System.out.println("Bitte geben Sie die zweite Zahl ein:");
this.zahlZwei = in.readLine();
} catch(IOException ex) {
System.out.println(ex.getMessage());
}
}
public int getZahlEins() {
return Integer.valueOf(this.zahlEins).intValue();
}
public int getZahlZwei() {
return Integer.valueOf(this.zahlZwei).intValue();
}
public char getOperator() {
return this.operator.charAt( 0 );
}
}
Der code funktioniert aber wenn ich das Programm ausführe geht es immer wieder in die while-Schleife rein und ich kann mir beim besten Willen nicht erklären wieso.
Vielen Dank
Gruss