Witam,
Dla większości z Was pytanie pewnie banalnie proste, ale nie daje mi spokoju. Dla wprawy wykonuję proste zadania z netu. Znalazłem między innymi zadnie, w którym trzeba stworzyć prosty system ratalny wyliczający wysokość rat. Danymi wejściowymi są:
- cena towaru (od 100 zł do 10000 zł),
- liczba rat (od 6 do 48),
Oprocentowanie w zależności od liczby rat: - 6 - 12 wynosi 2.5%
- 13 - 24 wynosi 5%
- 25 - 48 wynosi 10%
Program sprawdza, czy podane dane mieszczą się w powyższych zakresach.
Niby nic trudnego. Napisałem prosty kod, który znajdziecie poniżej:
import java.util.*;
public class obliczanieRat
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
System.out.print("Podaj kwotę zakupu:");
int kwota = in.nextInt();
System.out.print("Podaj ilość rat:");
int raty = in.nextInt();
//Sprawdzenie kwoty
while (kwota < 100 || kwota > 10000)
{
System.out.print("Podaj kwotę zakupu w przedziale 100zł - 10000zł: ");
kwota = in.nextInt();
}
//Sprawdzenie rat
while (raty < 6 || raty > 48)
{
System.out.print("Podaj poprawną liczbę rat z przedziału 6 - 48:");
raty = in.nextInt();
}
// Obliczanie wyskości rat
if (raty <= 12)
{
double rata = (kwota + (kwota * 0.025)) / raty;
System.out.println("Przy kwocie: " + kwota + " i liczbie rat: " + raty + ". Kwota jednej raty wyniesie: " + rata + "zł");
}
else if (raty > 12 && raty <= 24)
{
double rata = (kwota + (kwota * 0.05)) / raty;
System.out.println("Przy kwocie: " + kwota + " i liczbie rat: " + raty + ". Kwota jednej raty wyniesie: " + rata + "zł");
}
else if (raty > 24 && raty <= 48)
{
double rata = (kwota + (kwota * 0.1)) / raty;
System.out.println("Przy kwocie: " + kwota + " i liczbie rat: " + raty + ". Kwota jednej raty wyniesie: " + rata + "zł");
}
}
}
Program działa, ale chcąc go uprościć postanowiłem wynik podawać w ostatniej linii poza pętlą warunkową, tak jak poniżej:
import java.util.*;
public class obliczanieRat
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
System.out.print("Podaj kwotę zakupu:");
int kwota = in.nextInt();
System.out.print("Podaj ilość rat:");
int raty = in.nextInt();
//Sprawdzenie kwoty
while (kwota < 100 || kwota > 10000)
{
System.out.print("Podaj kwotę zakupu w przedziale 100zł - 10000zł: ");
kwota = in.nextInt();
}
//Sprawdzenie rat
while (raty < 6 || raty > 48)
{
System.out.print("Podaj poprawną liczbę rat z przedziału 6 - 48:");
raty = in.nextInt();
}
// Obliczanie wyskości rat
if (raty <= 12)
{
double rata = (kwota + (kwota * 0.025)) / raty;
}
else if (raty > 12 && raty <= 24)
{
double rata = (kwota + (kwota * 0.05)) / raty;
}
else if (raty > 24 && raty <= 48)
{
double rata = (kwota + (kwota * 0.1)) / raty;
}
System.out.println("Przy kwocie: " + kwota + " i liczbie rat: " + raty + ". Kwota jednej raty wyniesie: " + rata + "zł");
}
}
Jednak otrzymuję informację w Eclipse, że kompilator nie może odnaleźć zmiennej "rata" (rata can not be resolved to a variable). Wytłumaczycie mi, na czym polega problem? I jak go można rozwiązać, jeśli chciałbym wyświetlić wyniki własnie w ten sposób?