【问题标题】:I would like the Arrays to remember it all我希望数组记住这一切
【发布时间】:2012-01-31 23:22:21
【问题描述】:

这是关于我的任务的,所以我希望得到一般性的解释和解释。

我必须为在线订购系统制作一个 for 循环。 for 循环和排序都可以正常工作,但如果相同的项目被放入两次,那么它会忘记相同项目的前一个订单,只记住最新的订单。我需要使用简单的数组和 for 循环,所以如果解决方案/帮助也属于这个基本级别,我将不胜感激。

我的代码看起来像这样(注意:以下只是循环部分的示例——这不是一个完整的程序):

for (int i = 0; i < 3; i++) { //I changed the loop so there's no confusion about
                              //what I am actually asking about.
    if (order.equalsIgnoreCase(computer) {
         int price = quantity[i] + itemcode;
    }
}

为了进一步解释,如果某个项目仅订购一次,则此循环和 if 语句可以完美运行。但是,如果用户输入了一次计算机订单,然后在另外 3 个订单之后再订购另一台计算机,则输出不会在新订单中添加之前的订单,而只会记住最新的订单。

我会很感激为此建议的任何解决方法,但同样,由于这是为了我的研究,我希望得到解释而不是直接解决方案。

如果不清楚,请向我提问。

【问题讨论】:

  • “忘记之前的订单”是什么意思?
  • 我不认为我理解 blah == blah 部分。你到底想在这里做什么?发布更多代码。
  • 戴夫,例如,如果用户先订购了 4 台计算机,然后再订购 10 台计算机,程序不会计算到 14 台,而只考虑后面的顺序,即 10 台计算机.
  • @nickecarlo 使用 for-loop 你使用它的方式是自找麻烦
  • 您一直在谈论数组,但没有显示它的声明位置和使用方式。我们怎么知道它为什么不记得命令?

标签: java arrays if-statement for-loop


【解决方案1】:

如果您有两种或更多类型的产品,并且想一起计算所有订单的价格,那么您可以尝试以下代码,我认为这很简单,

int price=0;
for (int i = 0; i < 3; i++) { //I changed the loop so there's no confusion about
                              //what I am actually asking about.
    if (order.equalsIgnoreCase(computer) {
          price += quantity[i] + itemcode; //use the previous value of price
    }
}

否则,如果您想分别了解每种产品的历史记录,那么您必须尝试使用​​每种产品类型的一系列价格进行相同的操作。 如果您无法得到答案,请在此处发表评论,

【讨论】:

    【解决方案2】:

    “忘记”表明您正在覆盖代码中的某些内容,而不是说,只是递增。浏览您的代码,看看当您下新订单时它的哪些部分会被重置。例如,如果你正在做

    quantity[1] = getNumberFromUser("How many apples?");

    那么这显然会删除每次旧值。如果您只想增加苹果的数量,请执行以下操作

    quantity[1] += getNumberFromUser("How many apples?");

    另一个一般建议是使用打印语句来调试您的代码。这样你就可以亲眼看到真正发生的事情。学习使用真正的调试器也会大有裨益。

    【讨论】:

    • 感谢您的回答,让我试一试。我没有发布整个代码,因为这是我的大学作业,很多学生使用这个网站寻求帮助。他们对抄袭非常严格,我不想冒任何风险。让我试试你的建议,然后我会告诉你它的去向。
    • 这正是我所要求的。谢谢!它非常基础,但我几乎没有编程经验,所以有时我会卡住。
    • 为了清楚起见,我所要做的就是将“=”更改为“+=”。所有有经验的程序员可能都在想“哦,真是个菜鸟”,但对于像我这样从未学过编程但现在因为大学而不得不学的人来说真的很难。
    • 我们很高兴为您服务。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-30
    • 1970-01-01
    • 2012-01-06
    • 2015-08-19
    • 1970-01-01
    相关资源
    最近更新 更多