#java
#java
Вопрос:
Новичок в программировании. Я должен создать простую банковскую программу. Она отлично работает, если я превышаю баланс или остаюсь в пределах него. Если я сниму ровно столько, сколько осталось, она все равно будет работать и выведет оставшиеся суммы, которые не удалось вывести, но строку «Следующие запросы на получение кредита не удалось удовлетворить». не будет напечатано.
Если я помещу эту строку в последнюю инструкцию end if в цикле, она будет повторяться несколько раз столько раз, сколько осталось кредитов, мне нужно, чтобы она отображалась только один раз. Зашел в тупик, занимаюсь этим уже несколько часов и не могу найти решение. В целом это работает на 95%. Конец должен выглядеть как показано ниже. Ценю любую помощь
public class Exercise2 {
public static void main (String[] args) {
int loanRequests[] = {80,20,100,300,50,65,100,15};
int balance = 500;
String pot = "Cash in the pot: ";
String request = "Loan amount requested: ";
for (int i = 0; i < loanRequests.length; i ) {
if (balance >= loanRequests[i]) {
System.out.println(pot balance);
System.out.println(request loanRequests[i] " - Loan amount granted! " "n");
balance = (balance - loanRequests[i]);
}else if (balance < loanRequests[i] amp;amp; balance > 0) {
System.out.println(pot balance "n" request loanRequests[i]);
System.out.println("The exact loan amount cannot be processed in full (insufficent funds available).");
System.out.println("However we will give you what we can... " balance);
System.out.println("n" pot (balance - balance) "n" "n" "The following amounts could not be facilitated");
balance = 0;
}else
System.out.println(loanRequests[i]);
}
}
}
Ответ №1:
Привет, чувак, я не уверен, понял ли я, что ты имел в виду. Но я предоставлю то, что, по моему мнению, является ответом на вашу проблему. Это выведет ваше сообщение «Следующие запросы на получение кредита не удалось выполнить». только один раз.
public class Exercise2 {
static String getRestLoanRequestsString(int index,int requests[]){
StringBuilder builder = new StringBuilder(); //good practice to use StringBuilder when concating strings in loop
builder.append("The following loan requests could not be facilitated:n");
for(; index < requests.length;index ){
builder.append(requests[index])
.append("n");
}
return builder.toString();
}
public static void main (String[] args) {
int loanRequests[] = {80,20,100,300,50,65,100,15};
int balance = 500;
String pot = "Cash in the pot: ";
String request = "Loan amount requested: ";
for (int i = 0; i < loanRequests.length; i ) {
if (balance >= loanRequests[i]) {
System.out.println(pot balance);
System.out.println(request loanRequests[i] " - Loan amount granted! " "n");
balance = (balance - loanRequests[i]);
}else if (balance < loanRequests[i] amp;amp; balance > 0) {
System.out.println(pot balance "n" request loanRequests[i]);
System.out.println("The exact loan amount cannot be processed in full (insufficent funds available).");
System.out.println("However we will give you what we can... " balance);
System.out.println("n" pot (balance - balance) "n" "n" "The following amounts could not be facilitated");
balance = 0;
}else {
System.out.println(getRestLoanRequestsString(i,loanRequests));
break; //break the for loop because we don't have funds to give more loans
}
}
}
}
Комментарии:
1. привет, я действительно ценю ваши усилия .. это работает отлично. к сожалению, это слишком сложно для того, что ожидает мой преподаватель, мы сделали только очень простой материал, поэтому новый материал, который вы добавили, для меня двойной голландский 🙂 — большое спасибо, я попытаюсь расшифровать и извлечь из этого уроки
2. @javanoob123 вы могли бы избавиться от метода «getRestLoanRequestsString» и просто взять код метода и вставить его в оператор else, если хотите, я могу его отредактировать 🙂