Java 如何编写按年度计算复利的方法?
或者这个:Java 如何编写按年度计算复利的方法?,java,Java,或者这个: return amount - 1000; 编辑这是我要做的,因为今晚就要交了。谢谢大家的帮助。:) 问题是,balance不返回任何内容(这是一个void函数)。将其更改为: return amount - principal; 在该函数中,返回余额 Java告诉您它需要一个对象[],因为printf的定义如下: public static double balance(double principal, double rate, double years) { ... pu
return amount - 1000;
编辑这是我要做的,因为今晚就要交了。谢谢大家的帮助。:) 问题是,
balance
不返回任何内容(这是一个void
函数)。将其更改为:
return amount - principal;
在该函数中,返回
余额
Java告诉您它需要一个对象[]
,因为printf
的定义如下:
public static double balance(double principal, double rate, double years) {
...
public static void printf(String format, Object ... params) {
// params is an Object[]
}
printf("some string", first, second, etc);
public static void printf(String format, Object[] params);
这样做的目的是传递如下参数:
public static double balance(double principal, double rate, double years) {
...
public static void printf(String format, Object ... params) {
// params is an Object[]
}
printf("some string", first, second, etc);
public static void printf(String format, Object[] params);
它允许您传递任意数量的参数,并且函数可以像传递数组一样处理这些参数
它的定义与此完全相同:
public static double balance(double principal, double rate, double years) {
...
public static void printf(String format, Object ... params) {
// params is an Object[]
}
printf("some string", first, second, etc);
public static void printf(String format, Object[] params);
你是这样使用的:
public static double balance(double principal, double rate, double years) {
...
public static void printf(String format, Object ... params) {
// params is an Object[]
}
printf("some string", first, second, etc);
public static void printf(String format, Object[] params);
它只是更容易使用
编辑:
另一个选项是不在
main
中打印任何内容,但我绝对建议返回结果并在main
中打印。这遵循使每个函数尽可能少地执行的原则<代码>余额应该只计算余额。打印它是不相关的。问题是余额
不会返回任何内容(这是一个无效
函数)。将其更改为:
return amount - principal;
在该函数中,返回
余额
Java告诉您它需要一个对象[]
,因为printf
的定义如下:
public static double balance(double principal, double rate, double years) {
...
public static void printf(String format, Object ... params) {
// params is an Object[]
}
printf("some string", first, second, etc);
public static void printf(String format, Object[] params);
这样做的目的是传递如下参数:
public static double balance(double principal, double rate, double years) {
...
public static void printf(String format, Object ... params) {
// params is an Object[]
}
printf("some string", first, second, etc);
public static void printf(String format, Object[] params);
它允许您传递任意数量的参数,并且函数可以像传递数组一样处理这些参数
它的定义与此完全相同:
public static double balance(double principal, double rate, double years) {
...
public static void printf(String format, Object ... params) {
// params is an Object[]
}
printf("some string", first, second, etc);
public static void printf(String format, Object[] params);
你是这样使用的:
public static double balance(double principal, double rate, double years) {
...
public static void printf(String format, Object ... params) {
// params is an Object[]
}
printf("some string", first, second, etc);
public static void printf(String format, Object[] params);
它只是更容易使用
编辑:
另一个选项是不在
main
中打印任何内容,但我绝对建议返回结果并在main
中打印。这遵循使每个函数尽可能少地执行的原则<代码>余额应该只计算余额。打印它是不相关的。您的错误,请执行以下操作:
printf("some string", new Object[] { first, second, etc});
如果您的错误,请执行以下操作:
printf("some string", new Object[] { first, second, etc});
有几点:
不能为空,因为您在balance()
中使用了它的返回值。您想让balance打印到屏幕上,还是想让它产生一个数字S.out.printf()
- 您的循环
将不会运行。想想为什么。将的for(years=0;years>10;years++)
转换为
,将原因可视化,可能会有所帮助while
- 你以年为单位读双倍,然后在循环中用它作为计数器。实际上应该是什么类型的
- 您的
函数接受三个参数,然后立即获取输入并删除它们。您希望balance()
提供这些数字,还是希望它获取这些数字balance()
不能为空,因为您在balance()
中使用了它的返回值。您想让balance打印到屏幕上,还是想让它产生一个数字S.out.printf()
- 您的循环
将不会运行。想想为什么。将的for(years=0;years>10;years++)
转换为
,将原因可视化,可能会有所帮助while
- 你以年为单位读双倍,然后在循环中用它作为计数器。实际上应该是什么类型的
- 您的
函数接受三个参数,然后立即获取输入并删除它们。您希望balance()
提供这些数字,还是希望它获取这些数字balance()
另外,你似乎是在正确的轨道上。
请考虑对代码进行更剧烈的重新工作;实际上,您的
balance()
函数正在完成程序的所有工作(您的printf()
行感觉像是事后诸葛亮)。如果您根据代码的功能分解代码,我认为您可以做得更好:
- 创建一个函数,提示用户,然后读取他们的输入
- 创建一个函数,对本金、利率和年份调用前一个函数三次
- 创建一个计算和填充付款计划的函数。跟踪年度、余额、付款、本金支付和利息支付。(或者只是你感兴趣的变量——但要注意,程序往往会增加新功能,而这些变量通常是用户(或教授)在偿还贷款时要求知道的第二件事。)
- 创建用于打印付款计划中选定列的函数
- 创建一个编排先前函数的函数
存在过度设计过于通用的解决方案的风险——我真正想建议的是将代码功能分解为多个较小的例程,这些例程完全按照它们的名称执行。您可能永远不会将程序移到GUI或WebService或其他任何东西,但是当有人报告您的摊销计划是错误的,您可以通过更简单的编程来控制它,而不是整天重新输入。 < P>请考虑代码的更大的重新工作;实际上,您的
balance()
函数正在完成程序的所有工作(您的printf()
行感觉像是事后诸葛亮)。如果您根据代码的功能分解代码,我认为您可以做得更好:
- 创建一个函数,提示用户,然后读取他们的输入
- 创建一个函数