Pętla + enumy problem drugim i kolejnym państwem

Pętla + enumy problem drugim i kolejnym państwem
KA
  • Rejestracja:ponad 3 lata
  • Ostatnio:około 2 lata
  • Postów:27
0

(Początkujący)
Siemka, stworzyłem enumy, mam pobrać od użytkownika kraj oraz wynagrodzenie a potem przeliczyć jego kwotę brutto na netto. Jeżeli nie ma takiego państwa to wywalić komunikat stosowny komunikat. I mam tutaj wydaje mi się że błahy problem z pętlą.
Problem polega na tym że jeśli wpiszę w metodę np: "poland" to wszystko pięknie chodzi.bo jest na pierwszym miejscu a jeśli wpiszę "england" gdzie jest na drugim miejscu to już wywali ten stosowny komunikat "brak dnaych o państwie".

public enum Country implements IPrinttable {

//KRAJ, WALUTA, PODATEK;
POLAND("PLN", 23),
ENGLAND("EUR", 18),
CROATIAN("HRK", 11);

private final String currency;
private final int tax;

Country(String currency, int tax) {
    this.currency = currency;
    this.tax = tax;
}


public static void find3() {
    Scanner scanner = new Scanner(System.in);
    System.out.println("Podaj państwo");
    String nation = scanner.nextLine();
    for (Country country : Country.values()) {
        if (country.name().equalsIgnoreCase(nation)) {
            System.out.println("Podaj zarobki: ");
            double earings = scanner.nextInt();
            System.out.println(earings + " " + country.currency + " brutto");
            int podatek077 = 100 - country.tax;
            double kwotaBezPodatku = ((podatek077 / 100.00) * earings);
            System.out.println("Podatek = " + country.tax + " %");
            System.out.println(kwotaBezPodatku + " " + country.currency + " netto");
        } else System.out.println("Brak danych o państwie: " + nation);
        break;
    }
}
RA
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 3 lata
  • Postów:17
0

breakiem wychodzisz po pierwszym przebiegu pętli. dodałbym boolean found=false; przed pętlą if (!found) System.out.println("Brak danych o państwie: " + nation); dał na sam koniec i jeszcze coś w środku musisz dodać.

vpiotr
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
2

Do enuma dodaj metode budujaca, np.
Country fromName(String name);
Niech rzuci exception jak nie znajdzie enuma.
Jesli nie chcesz exception to zamien wynik na Optional albo dodaj
boolean isValidName(String name)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.