Задача (Яндекс практикум)
Можете объяснить как решается эта задача, и и какие есть решения задачи?
Буду благодарен каждый любой ответ.
Задание: Сделайте так, чтобы оно могло конвертировать не только в доллары, но и в евро. В переменной 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);
}
}
}