Когда вы объявляете переменную внутри функции, например, в вашем setAmount, она существует только до тех пор, пока эта функция выполняется; он существует только между {и}. Вот почему вы не можете ссылаться на нее позже во второй функции, поскольку она больше не существует. По существу, то, что вы делаете, это установить его, а затем сразу избавиться от него, не прилагая никаких усилий к вашему коду, а просто путем выделения и использования памяти в программах.
Способом обойти это было бы использование «глобального», как вы сказали, или передать его после того, как вы его установили, и поместить его в другую переменную, которую затем отправляете в функцию displayInvoice. Последний метод требует, чтобы setAmount и displayInvoice были частью самой большой функции, а промежуточная переменная объявлена внутри нее. В целом, «глобальный», как вы сказали, является самым простым и, вероятно, лучшим решением, учитывая то, что вы объяснили.
Unworking Пример:
main() {
int amount = 0;
amount = setAmount(5);
displayInvoice(amount);
}
При этом, хотя, вы можете также отказаться от функции setAmount, как вы можете видеть, что это довольно излишним. Сохраняя определенную сумму, вам нужно изменить его на
Public int setAmount(int anyAmount)
Вы уверены, что правильно прочитали задание? – James
вы должны объявить сумму как переменную уровня класса, а затем установить ее и получить ее resuls – nsgulliver
Является ли требование, чтобы переменные определялись локально частью домашнего задания? – rgettman