Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 确保我正确地解决了这个问题_Java - Fatal编程技术网

Java 确保我正确地解决了这个问题

Java 确保我正确地解决了这个问题,java,Java,这是我的第一门编程课程,我想确保我正确地解决了这个问题。如果你能检查一下我的工作,我将不胜感激 在给定起始余额和支票对象数组的情况下,编写一个方法来计算并返回支票帐户的余额。您可以假设Check类已经存在,并且有一个方法可以从名为double getAmount()的特定Check对象获取金额 阵列未满,并且可能存在间隙–请确保在尝试访问之前测试是否存在对象!使您的代码适用于任意长度的数组 将为您提供该方法的标题: public double computeBalance(double star

这是我的第一门编程课程,我想确保我正确地解决了这个问题。如果你能检查一下我的工作,我将不胜感激

在给定起始余额和支票对象数组的情况下,编写一个方法来计算并返回支票帐户的余额。您可以假设Check类已经存在,并且有一个方法可以从名为double getAmount()的特定Check对象获取金额

阵列未满,并且可能存在间隙–请确保在尝试访问之前测试是否存在对象!使您的代码适用于任意长度的数组

将为您提供该方法的标题:

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);
}

暂时忘记编程吧。如果我告诉你“这是你账户的起始余额”,然后递给你一堆支票,告诉你计算期末余额,你会怎么做?一旦理解了这一点,就可以开始解决编程问题了

一些问题:

  • 你在哪里跟踪帐户余额
  • 如果
    寄存器
    中的一个插槽为空(即
    null
    ),循环中会发生什么情况
  • 循环中的
    检查
    变量是什么?在哪里申报?
    check
    真的应该叫它什么吗
  • 该函数被声明为返回
    double
    。你回来干什么
  • 你试过编译你的代码吗?会发生什么

当您到达间隙时,执行将结束。在循环中使用if语句进行空检查。

如果您可以通过编译器运行代码(听起来好像您不能,或者至少没有人鼓励您这样做),它会告诉您它不知道
i
check
getAmount
是什么

不引用方法参数的方法体通常会缺少一些东西——特别是如果参数声明是由讲师给出的


再次查看循环条件。
i
一开始的价值是什么?

我知道你要求的不仅仅是解决方案本身,但显然有更好的人来指导你。你可以用我的例子来参考别人向你解释的内容

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;
}
公共双计算机天平(双启动天平,检查[]寄存器){
//让我们从起跑平衡开始
双倍总额=启动余额;
//检查从0开始的所有元素
for(int i=0;i
在尽量不粗鲁的同时。。。你是在这门课的基础上跳过基础课的吗?您的函数不返回任何内容,
i
不存在(您正在检查它是否大于数组长度),并且您似乎不理解方法/类是什么。任何人都能提供的最好的建议是买一本“java简介”书,从头开始。如果我不把它们加在一起,你可能会生气。虽然我发布了编码的解决方案,但我最好也接受你的答案。我真丢脸:-)平等——这就是生活。我希望这位OP能用一点苏格拉底式的口吻,自己解决其中的一些问题,在评论中可能会有一些反复。这对海报毫无帮助。