Räknefel i Java
Hej!
Jag har fått en rätt enkel uppgift:
"Skapa ett program som läser in en initial summa att placera på ett konto och
därefter tio insättningar. Inläsningen av insättningarna skall hanteras av en
metod som skriver ut en trevlig ledtext, läser in insättningen och returnerar
summan. Efter varje insättning skall en andra metod anropas som lägger på
10% av värdet på insättningen som en bonus och returnerar denna nya
summa. Efter inläst insättning och pålagd bonus skall den totala summan
läggas till på kontot.
Det är fritt fram att lägga till ledtext så att användaren vet vad hen skall göra i
varje steg. Den totala summan på kontot skall skrivas ut innan programmet
avslutas.
Följande måste användas:
1. En Scanner
2. En metod utan parametrar som returnerar ett värde
3. En metod som tar en parameter och returnerar ett värde"
Först skrev jag:
import java.util.Scanner;
class Moh{
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
double saldo = 1000;
double rate = .1;
double deposit = 0;
double depsum;
System.out.println("Välkommen till Superspelsajten!!!\nVi ger dig omedelbart " + saldo +
" SEK att spela för.\nVi ger dig dessutom 10% extra på dina 10 första insättningar!");
System.out.println("\nVälkommen till din första insättning.");
for(int counter = 0; counter <10;){
System.out.println("Hur mycket vill du sätta in?");
deposit = scan.nextDouble();
counter++;
depsum = (deposit * rate)+ deposit;
saldo = depsum + saldo;
System.out.println("Du satte in " + deposit + " SEK");
System.out.println("Vi ger dig " + depsum + " SEK");
System.out.println("Ditt saldo är " + saldo + " SEK\n");
System.out.println("Du har utnyttjat " + counter + " av dina 10 bonusinsättningar.");
}
System.out.println("Du har inga bonusinsättningar kvar.");
}
}
Detta funkade ju alldeles utmärkt, tills jag läste lite mer noga om vilka krav som gällde.
Jag skrev om programmet till:
import java.util.Scanner;
class wtf{
public static void main(String[] args) {
double saldo = 1000;
int deposit;
Scanner scan = new Scanner(System.in);
wtf wtfObject = new wtf();
System.out.println("Välkommen till Superspelsajten!!!\nVi ger dig omedelbart " + saldo +
" SEK att spela för.\nVi ger dig dessutom 10% extra på dina 10 första insättningar!");
System.out.println("\nVälkommen till din första insättning.");
for(int counter = 0; counter <10;){
System.out.println("Hur mycket vill du sätta in?");
deposit = scan.nextInt();
wtfObject.deposits(saldo, deposit);
}
}
public void deposits(double saldo, int deposit){
double depsum;
double rate = .1;
depsum = (deposit * rate)+ deposit;
saldo = depsum + saldo;
System.out.println("Du satte in " + deposit + " SEK");
System.out.println("Vi ger dig " + depsum + " SEK");
System.out.println("Ditt saldo är " + saldo + " SEK\n");
// System.out.println("Du har utnyttjat " + counter + " av dina 10 bonusinsättningar.");
// System.out.println("Du har inga bonusinsättningar kvar.");
}
}
Nu funkar inte saldoräknaren som den ska längre. Jag känner mig lite dum här, för jag har en känsla av att det är något ganska självklart jag missar.
Jag fick inte heller med de två sista printsatserna (förvisso inte nödvändiga, men vadå ).
Tacksam för all input om detta.
Tack