Есть некая сумма и вам нужно внести платёж что бы погасить кредит. Если вы внесёте больше необходимой суммы то программа выдаст предупреждение. Если вы погасили кредит и пытаетесь закинуть ещё денег программа выдаст предупреждение и закроется. Хотя настоящий банк с удовольствием принял бы эти деньги и списал фонд помощи кредитным работникам.
Основная сложность программы состояла в том что сумма кредита никак не хотела уменьшаться, и каждый раз вызывая метод сумма оказывалась прежней. В моём случае 700. Когда я внедрял вызов метода в switch то по выходе из программы стек повторял несколько раз сообщение.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
import java.util.Scanner; public class BankCredit { static void method(double credit){ Scanner in = new Scanner(System.in); //Сканнер пришлось продублировать double sumPagash; while (true){ System.out.println("\nВыберите действие:\n1. Завершение программы\n2. Погасить кредит\n"); int vibor = in.nextInt(); if (credit <= 0) {System.out.println("Ваш кредит погашен! Завершение программы"); break; } begin: switch (vibor){ case 1: System.out.println("Завершение программы"); return; case 2: System.out.println("Ваш долг на данный момент: "+credit+"\nВведите сумму погашения: "); sumPagash = in.nextDouble(); if (sumPagash < 100) { System.out.println("Ошибка! Введите сумму больше 100."); break begin; }else if (sumPagash > credit){ System.out.println("Сумма погашения больше чем ваш долг, введите верную сумму!"); break begin; } credit -= sumPagash; if (credit <= 0) { System.out.println("Остаток кредита: "+credit+" Ваш кредит погашен!"); }else { System.out.println("Остаток кредита: "+credit); } method(credit); //Рекурсивно обращаемся к методу main return; //Выходим из цикла без попадания в рекурсию default: System.out.println("Ошибка!"); continue; } } } public static void main(String[] args) { double credit = 700; method(credit); } } |
| Категория: Java
| Тэги: switch / while