#java #eclipse #loops #if-statement #switch-statement
#java #eclipse #циклы #if-оператор #switch-оператор
Вопрос:
Я создаю калькулятор монет, который разбивает стоимость пенни на номиналы, но я хочу сделать так, чтобы пользователь мог исключить номинал монеты, см. Мой код ниже. Я натыкаюсь здесь на стену и изо всех сил пытаюсь придумать код, который позволил бы это сделать, если у кого-нибудь есть указатель, я был бы очень признателен. У меня нет проблем с созданием кода, в котором пользователь может выбрать, какой номинал включить.
int money;
int denom;
Scanner sc=new Scanner(System.in);
System.out.println("Please enter the amount of coins you have in penny value");
money = sc.nextInt();
System.out.println("Also the denomiation you would like exclude; 2, 1, 50p, 20p, 10p");
denom = sc.nextInt();
while (money > 0){
if (money >= 200) {
System.out.println("£2");
money -= 200;
}
else if (money >= 100) {
System.out.println("£1");
money -= 100;
}
else if (money >= 50) {
System.out.println("50p");
money -= 50;
}
else if (money >= 20) {
System.out.println("20p");
money -= 20;
}
else if (money >= 10) {
System.out.println("10p");
money -= 10;
}
else if (money >= 1) {
System.out.println("1p");
money -= 1;
}
Ответ №1:
Я бы сказал, что это, вероятно, самый простой способ сделать это без создания для него отдельного метода. Установка значения denom на исключенное значение, а затем проверка того, равна ли монета значению перед вычитанием, может сработать, поскольку монет в любом случае не так много.
int money;
int denom;
Scanner sc=new Scanner(System.in);
System.out.println("Please enter the amount of coins you have in penny value");
money = sc.nextInt();
System.out.println("Also the denomiation you would like exclude; 2, 1, 50p, 20p, 10p");
String input = sc.next(); //saving user input as a string
if (input.contains("p"))
{ //converting string to int by removing the p
denom = Integer.parseInt(input.substring(0, input.indexOf("p")));
}
else
{ //if there's no p, multiply its value by 100
denom = Integer.parseInt(input) * 100;
}
while (money > 0){
if (money >= 200 amp;amp; denom != 200) {
System.out.println("£2");
money -= 200;
}
else if (money >= 100 amp;amp; denom != 100) {
System.out.println("£1");
money -= 100;
}
else if (money >= 50 amp;amp; denom != 50) {
System.out.println("50p");
money -= 50;
}
else if (money >= 20 amp;amp; denom != 20) {
System.out.println("20p");
money -= 20;
}
else if (money >= 10 amp;amp; denom != 10) {
System.out.println("10p");
money -= 10;
}
else if (money >= 1) {
System.out.println("1p");
money -= 1;
}
}
Комментарии:
1. Спасибо! Я не знаю, как я не видел этого раньше, вы мне очень помогли 🙂
2. Нет проблем, рад помочь.