像往常一样,我只是另一个绝望的高中生,在经过大量的谷歌搜索之后不得不诉诸问题。
我正在开发其中一个可以在现实生活中应用的程序(但从来没有)。在这种情况下,一个更改计数器,总计一角硬币,镍币,四分之一和剩余的分数,并用一句话显示它们。
我的问题是,我需要制作一个正确的句子格式,最后使用逗号和“和”,我无法用当前非常有限的知识来管理。
我的计划部分涉及我想要问的是:
System.out.print(backupInput + ": ");
// Outputting the quarters
if (quarters > 0)
{
if (quarters == 1)
System.out.print("one quarter, ");
else
System.out.print(quarters + " quarters, ");
}
// Outputting the dimes
if (dimes > 0)
{
if (dimes == 1)
System.out.print("one dime, ");
else
System.out.print(dimes + " dimes, ");
}
// Outputting the nickels
if (nickels > 0)
{
if (nickels == 1)
System.out.print("one nickel, ");
else
System.out.print(nickels + " nickels ");
}
// Outputting the cents
if (cents > 0)
{
if (cents == 1)
System.out.print(" one cent");
else
System.out.print(cents + " cents ");
}
问题是,这些输出产生的结果类似于
7: 1 dime, 2 cents
虽然它应该是,但根据给出的示例格式:
7: 1 dime and 2 cents
65: 2 quarters, 1 dime and one nickel
66: 2 quarters, 1 dime, 1 nickel, and one cent
请记住,我几乎尝试了所有我能想到的东西,并且在我的所有尝试中,它效率太低,甚至在所有情况下都无法工作。我不是想把自己从这里拯救出来。我只是想学习正确的做法背后的概念。
就是这样。该程序的其余部分工作正常和花花公子。如果你们中的任何一个人可以帮助我,请保持答案易于理解为像我这样的新手,所以更容易掌握这个概念:) 谢谢!
答案 0 :(得分:5)
有时候更容易解决问题。我可能做的是创建一个字符串数组:[“2个季度”,“1个角钱”,“1个镍币”,“1分”]
然后查看我有多少(有效)数组元素并循环遍历N个元素的N-1,输出用逗号分隔的行。然后(假设有多个数组元素)输出“和”后跟最后一个数组元素。
还有其他方式“效率更高”,但我已经在这个商业40年了,我会在任何一天“易于理解和工作”而不是“有效”。
(当然,这不是剥掉这只猫的唯一方法,而且可能还有其他同样简单的方法,但那是你和其他人发明的。)
(请注意,避免代码必须在if
语句的每个人之间决定是否插入“和”。当您反复重复相同的逻辑时,您往往会增加错误并造成维护噩梦。)
答案 1 :(得分:2)
您当前的方法是计算硬币类型的计数,然后立即打印结果。
相反,如果您首先计算所有硬币的计数而不进行任何打印,则可以看到哪个是具有非零计数的最小硬币(因此最后一个要在输出中命名)。使用它,我认为您可以弄清楚如何将计数粘合在一起并打印所需的文本。
答案 2 :(得分:1)
由于您正在学习Java,我不会给您完整的解决方案,但这里有一些方向:
String
变量中,而不是System.out.print
逐位存储String
中,删除尾随的逗号(如果有的话)(仅在cents == 0
或nickels > 1
的情况下,但后者可能是您的错误)" and"
,如果有的话String
如果您仍然完全陷入困境,请告诉我们,我相信有人会想出一个现成的解决方案(如果还没有)。