Задача (Яндекс практикум)

Можете объяснить как решается эта задача, и и какие есть решения задачи?

Буду благодарен каждый любой ответ.

Задание: Сделайте так, чтобы оно могло конвертировать не только в доллары, но и в евро. В переменной currency сохраните название валюты: USD или EUR. В зависимости от того, какая валюта хранится в переменной, пользователь увидит сумму своих сбережений в долларах или евро.

  class Praktikum {
    public static void main(String[] args) {

        double rateUSD = 78.5;
        double rateEUR = 85.5;
        double rubles = 14560.5;

        String currency = "USD";
        System.out.println("Вы конвертируете рубли в " + currency);
        // Если currency равно "USD", то конвертируем в доллары, иначе в евро
        ... {
            System.out.println("Ваши сбережения в долларах: " + rubles / rateUSD);
        } ... {
            System.out.println("Ваши сбережения в евро: " + rubles / rateEUR);
        }
    }
}

Ответы (3 шт):

Автор решения: George_A
class Praktikum {

    private static final Map<String, Double> CURRENCY_RATES = new HashMap<>();
    {
       addRate("USD", 78.5); 
       addRate("EUR", 85.5);
       addRate("OKB", 33.3);
       ....
    }

    public static void main(String[] args) {

        if(args.length < 2) {
           throw new IllegaArgumentException("Укажите валюту конвертации и сумму счета в рублях");
        }
        
        double rubles = 14560.5;
        string currency = args[0].toUpperCase();
        Double rate = CURRENCY_RATES.get(currency);
        if(rate == null) {
            System.out.println("Валюта " + currency + " не обслуживается");
        }
        else {
            System.out.println("Ваша сбережения в " + currency + ": " + rubles / rate);
        }
    }

    private static addRate(String currencyCode, double rate) {
            
          Objects.requiredNonNull(currencyCode, "currency is null");
          if(rate <= 0d) {
              throw new IllegalArgumentException("The rate must be positive. Actual: " + rate);
          }
          Double prevValue = CURRENCY_RATES.put(currencyCode.toUpperCase(), rate);
          if(prevValue != null) {
              throw new IllegalStateException("The currency rate with code " + currencyCode + " is duplicated");
          }      
    }
}
→ Ссылка
Автор решения: Владимир
class Praktikum {
    public static void main(String[] args) {
     
        double rateUSD = 78.5;
        double rateEUR = 85.5;
        double rubles = 14560.5;

        String currency = "USD";
        System.out.println("Вы конвертируете рубли в " + currency);

        if (currency.equals("USD")) {
            System.out.println("Ваши сбережения в долларах: " + rubles / rateUSD);
        } else if (currency.equals("EUR")) {
            System.out.println("Ваши сбережения в евро: " + rubles / rateEUR);
        } else {
            System.out.println("Валюта не поддерживается.");
        }
    }
}
→ Ссылка
Автор решения: Marunjja
class Praktikum {
    public static void main(String[] args) {

        double rateUSD = 78.5;
        double rateEUR = 85.5;
        double rubles = 14560.5;

        String currency = "USD";
        System.out.println("Вы конвертируете рубли в " + currency);
        // Если currency равно "USD", то конвертируем в доллары, иначе в евро
        if (currency.equals("USD")) {
            System.out.println("Ваши сбережения в долларах: " + rubles / rateUSD);
        } else {
            System.out.println("Ваши сбережения в евро: " + rubles / rateEUR);
        }
    }
}
→ Ссылка