这是我的第一个编程课程,我想确保我正确地解决了这个问题。如果你能查看我的作品,我将不胜感激。
在给定起始余额和Check对象数组的情况下,编写一个计算并返回支票帐户余额的方法。您可以假设Check类已经存在,并且有一个方法可以从特定的检查对象中获取金额:double getAmount()
数组未满,可能有空白 - 确保在尝试访问之前测试是否有对象!使您的代码适用于任何长度数组!
为您提供了该方法的标题:
public double computeBalance(double startingBalance, Check[] register) {
int i = 0; // i must be initialized and declared somewhere at least
double total = 0.0;
while ((i >= check.length) && check[i] != null) { // is >= correct? you do i++!
total = (total + getAmount(check[i])); // should you add/compute somewhere
// the given amounts
i++;
}
System.out.println(total);
}
答案 0 :(得分:7)
忘记编程一秒钟。如果我告诉你“这是你帐户中的起始余额。”然后递给你一堆支票并告诉你计算期末余额,你会怎么做?一旦理解了这一点,就可以开始解决编程问题了。
有些问题:
register
中的其中一个广告位为空(即null
),您的循环会发生什么?check
变量是什么?它被宣布在哪里? check
真的应该叫它吗?double
。你回来了什么?答案 1 :(得分:1)
当你达到差距时,执行将结束。在循环内部使用if语句代替null检查。
答案 2 :(得分:1)
如果您可以通过编译器运行您的代码(听起来您不能,或者至少不被鼓励),它会告诉您它不知道i
,{ {1}}或check
是。
没有引用方法参数的方法体通常缺少某些东西 - 特别是如果参数声明是由教师给出的。
再次查看循环条件。 getAmount
在开始时的价值是多少?
答案 3 :(得分:1)
我知道您要求的不仅仅是解决方案本身,但显然有更好的人来指导您。您可以使用我的示例作为对其他人向您解释的内容的参考。
public double computeBalance(double startingBalance, Check[] register) {
// let's start off from the starting balance
double total = startingBalance;
// go over all elements starting from 0
for (int i = 0; i < check.length; i++) {
// make sure you did not encounter null element
if (register[i] != null) {
// increase the total by the amount of the Check
total += register[i].getAmount();
}
}
// and finally return the resulting value
return total;
}