Top.Mail.Ru
Ответы

Помогите решить задачу JAVA

Итак, вам нужно усложнить приложение для финансов. Если раньше программа переводила имеющуюся переменную в доллары, то теперь логика будет следующая:
Вводится сумма в рублях.
Вводится команда, которая определяет, в какую валюту конвертировать рубли — в доллары, евро или юани.
Сумма в рублях переводится в выбранную валюту.
Проверяется полученный результат. Если он меньше нуля, выводится сообщение «Ошибка: некорректные значения.».
Если ошибки нет, выводится текст «Было введено [количество рублей], в [название валюты] это [сумма в валюте]». Например, «Было введено 5000.0, в долларах это 61.050061050061046». После запятой при делении может быть много цифр — это особенности деления и отображения результата в Java, не пугайтесь.
Если введена неизвестная команда, должен выводиться результат: «Такой команды нет.».
Если команда введена правильно, выводится результат конвертации.
В любом случае в конце выводится сообщение: «Работа с программой завершена.».


Вот мой код:
import java.util.Scanner;

public class Practicum {
public static void main(String[] args) {
double rateUSD = 75.5;
double rateEUR = 88.0;
double rateCNY = 11.5;

Scanner scanner = new Scanner( System.in );

System.out.println("Введите сумму рублей для конвертации:");
double roubles = NumberReader.getDouble();

System.out.println("Введите номер валюты, в какую перевести рубли:");
System.out.println("1 – доллары;");
System.out.println("2 – евро;");
System.out.println("3 – юани;");

int command = NumberReader.getInteger();
double result = 0;
String currency = "";


if (command == 1) {
result = roubles / rateUSD;
currency = "доллары";
} else if (command == 2) {
result = roubles / rateEUR;
currency = "евро";
} else if (command == 3) {
result = roubles / rateCNY;
currency = "юани";
} else {
System.out.println("Ошибка: такой команды нет.");
System.out.println("Работа с программой завершена.");
return;
}


if (result < 0) {
System.out.println("Ошибка: некорректные значения.");
} else {
System.out.printf("Было введено %.2f, в %s это %.14f\n", roubles, currency, result);
}

System.out.println("Работа с программой завершена.");
}
}


class NumberReader {
public static double getDouble() {
Scanner scanner = new Scanner( System.in );
return scanner.nextDouble();
}

public static int getInteger() {
Scanner scanner = new Scanner( System.in );
return scanner.nextInt();
}
}
Что тут не так? Вписав этот код в intelij не показал ошибок.

По дате
По Рейтингу
Аватар пользователя
8мес

Во-первых, бог поможет
Во-вторых, сам такой

Аватар пользователя
Искусственный Интеллект
8мес

почему не спросишь в разделе по джаве?

Аватар пользователя
Знаток
8мес

Твой код работает. Чем он тебе не нравится?
Вот немного переписал:

1234567891011121314151617181920212223242526272829303132333435363738394041424344
 import java.util.Scanner; 
class Practicum { 
    public static void main(String[] args) { 
        final double rateUSD = 75.5, rateEUR = 88.0, rateCNY = 11.5; 
        int command; 
        double result, roubles; 
        String currency; 
        Scanner scanner = new Scanner(System.in); 
 
        System.out.print("Введите сумму в рублях: "); 
        roubles = scanner.nextDouble(); 
        System.out.println(""" 
                            1 – доллары 
                            2 – евро 
                            3 – юани"""); 
        System.out.print("Конвертировать в: "); 
        command = scanner.nextInt(); 
 
        switch (command) { 
            case 1: 
                result = roubles / rateUSD; 
                currency = "долларах"; 
                break; 
            case 2: 
                result = roubles / rateEUR; 
                currency = "евро"; 
                break; 
            case 3: 
                result = roubles / rateCNY; 
                currency = "юанях"; 
                break; 
            default: 
                System.out.println("Ошибка: такой команды нет."); 
                System.out.println("Работа с программой завершена."); 
                return; 
        } 
        if (result < 0) { 
            System.out.println("Ошибка: некорректные значения."); 
        } else { 
            System.out.printf("Было введено %.2f, в %s это %f\n", roubles, currency, result); 
        } 
        System.out.println("Работа с программой завершена."); 
    } 
} 
Аватар пользователя
Мудрец
8мес
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
 import java.util.Scanner; 
 
public class CurrencyConverter { 
    private static final Scanner scanner = new Scanner(System.in); 
 
    public static void main(String[] args) { 
        double roubles = NumberReader.getDouble(); 
        String currency = "USD"; 
        double result = convertCurrency(roubles); 
 
        if (result < 0) { 
            System.out.println("Ошибка: некорректные значения."); 
        } else { 
            System.out.printf("Было введено %.2f, в %s это %.14f\n", roubles, currency, result); 
        } 
 
        System.out.println("Работа с программой завершена."); 
        scanner.close(); 
    } 
 
    private static double convertCurrency(double roubles) { 
        return roubles * 0.013; 
    } 
} 
 
class NumberReader { 
    public static double getDouble() { 
        while (true) { 
            try { 
                System.out.print("Введите число (double): "); 
                return CurrencyConverter.scanner.nextDouble(); 
            } catch (Exception e) { 
                System.out.println("Ошибка: введите корректное число."); 
                CurrencyConverter.scanner.next(); 
            } 
        } 
    } 
 
    public static int getInteger() { 
        while (true) { 
            try { 
                System.out.print("Введите целое число (int): "); 
                return CurrencyConverter.scanner.nextInt(); 
            } catch (Exception e) { 
                System.out.println("Ошибка: введите корректное целое число."); 
                CurrencyConverter.scanner.next(); 
            } 
        } 
    } 
} 

Сгенерировал ИИ код не тестил!