[Homework] [Programming Basics with JAVA] Задача 13. Конзолен междувалутен конвертор
Здравейте колеги, поблъсках си главата как евентуално може да се реши тази задачка, нацъках някакво решение ама ми се струва прекалено дълго. Ако някой и който я е решил по някакъв по-прост и кратък начин, моля да сподели! Ето и PasteBin на това, което нацъках:
https://pastebin.com/zgRdtmXs
Според мен по-правилно е да имаш стойностите ( Валутен курс ) дефинирани само на 1 място, а надолу да работиш само с имената на променливите, защото така както си го направила, ако имаш повече валути и куса се сменя ще трябва да сменяш стойностите на много места. :)
Всъщност, ако курсът се сменя, ще трябва да се променят стойностите само на две места, не са много. В конкретния случай мисля, че не е чак такъв проблем, но си прав, че е добре да се изведат стойностите на едно място, най-малкото за по-добра прегледност и четимост на кода :)
Или нещо такова:
import java.util.Scanner;
public class currencyConverter1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double amount = Double.parseDouble(scanner.nextLine());
int inputCurrency = Integer.parseInt(scanner.nextLine());
int outputCurrency = Integer.parseInt(scanner.nextLine());
double BGN = 1;
double USD = 1.79549;
double EUR = 1.95583;
double GBP = 2.53405;
double rateInput = 0;
double rateOutput = 0;
switch(inputCurrency){
case 1:
rateInput = BGN;
break;
case 2:
rateInput = USD;
break;
case 3:
rateInput = EUR;
break;
case 4:
rateInput = GBP;
break;
}
switch(outputCurrency){
case 1:
rateOutput = BGN;
break;
case 2:
rateOutput = USD;
break;
case 3:
rateOutput = EUR;
break;
case 4:
rateOutput = GBP;
break;
}
System.out.printf("%.2f",(amount*rateInput)/rateOutput);
}
}
Благодаря! Помогна ми да си открия грешките в моя код :)