cosmo2
Legacy Member
Hey, ik ben een calculator aan het programmeren die alles wat je op 1 lijn ingeeft berekend. Ik heb alles gemaakt, maar zit nu met een probleempje waar hij inplaats van 6 + 2 + 5 doet, doet hij 6 + 2 + 2 + 5. Hij neemt het vorige getal en telt het bij(afhankelijk van de operator) het volgende getal, stockeert deze in een double, berekend de volgende 2 getallen en telt die bij de gestockeerde double op. Maar dat wil ik natuurlijk niet en ik denk toch dat 6 + 2 + 5 nog altijd 13 is.
Dit is mijn code waar hij berekend.
Bij het debuggen zie ik dat hij inderdaad 6 + 2 = 8 doet en dan 8 + 2 + 5 = 15. Ik weet ook de reden waarom hij dit doet (uitkomst = uitkomst + ....), maar weet er geen oplossing voor.
Als ik 'uitkomst + ....' weglaat berekend hij alleen de laatste 2 getallen. (6 + 2 + 5 = 7)
Alvast bedankt!
Dit is mijn code waar hij berekend.
Code:
public double optellen(double x, double y){
return x + y;
}
public double vermenigvuldigen(double x, double y){
return x * y;
}
public double aftrekken(double x, double y){
return x - y;
}
public double delen(double x, double y){
return x / y;
}
public double procent(double x, double y){
return x % y;
}
public void berekenIngave(){
for (int i = 0 ; i < args.length; i++){
switch (args[i]) {
case "+":
uitkomst = uitkomst + optellen(toDbl[i - 1], toDbl[i + 1]);
break;
case "-":
uitkomst = uitkomst - aftrekken(toDbl[i - 1], toDbl[i + 1]);
break;
case "/":
uitkomst = uitkomst / delen(toDbl[i - 1], toDbl[i + 1]);
break;
case "%":
uitkomst = uitkomst % procent(toDbl[i - 1], toDbl[i + 1]);
break;
case "*":
uitkomst = uitkomst * vermenigvuldigen(toDbl[i - 1], toDbl[i + 1]);
break;
}
}
printUitkomst();
}
Bij het debuggen zie ik dat hij inderdaad 6 + 2 = 8 doet en dan 8 + 2 + 5 = 15. Ik weet ook de reden waarom hij dit doet (uitkomst = uitkomst + ....), maar weet er geen oplossing voor.
Als ik 'uitkomst + ....' weglaat berekend hij alleen de laatste 2 getallen. (6 + 2 + 5 = 7)
Alvast bedankt!
Maar ik weet er geen oplossing voor.