Redian新闻
>
。。。这个Java程序的loop没有执行,怎么回事?
avatar
。。。这个Java程序的loop没有执行,怎么回事?# JobHunting - 待字闺中
w*2
1
题目是这样的:You are required to use loops, decision making constructs and
static functions to write your program. Depreciation to a salvage value of 0
For tax purposes an item may be depreciated over a period of several years,
n. With the straight line method of depreciation, each year the item
depreciates by 1/nth of its original value. With the double-declining method
of depreciation, each year the item is depreciates by 2/nths of its value
at the beginning of the year. (in the last year it is depreciated by its
value at the begining of the year). Write a program that 1. requests a
description of the item, the year of purchase, the cost of the item, the
number of years to be depreciated(estimated life), and the method of
depreciation. 2. Displays a depreciation schedule for the item similar to
the schedule shown below:
Description: Computer
Year of purchase: 1994
Cost : 2000
Estimated Life: 5
Method of depreciation: Double-Declining
Year Cost Dep. Amt Tot Dep.
1994 2,000.00 800.00 800.00
1995 1,200.00 480.00 1280.00
1996 720.00 288.00 1568.00
1997 432.00 172.80 1740.80
1998 259.20 259.20 2000.00
Description: Computer
Year of purchase: 1994
Cost : 2000
Estimated Life: 5
Method of depreciation: Straight-Line
Year Cost Dep. Amt Tot Dep.
1994 2,000.00 400.00 400.00
1995 2,000.00 400.00 800.00
1996 2,000.00 400.00 1,200.00
1997 2,000.00 400.00 1,600.00
1998 2,000.00 400.00 2,000.00
我自己写了代码,但是loop没有执行,怎么回事?
求解,不剩感激
import java.io.Console;
import java.util.Scanner;
public class Depre {

public static void SingleDep(int year,float cost, int life )
{
int n=1;
float X,Y,Z;
for (; n <=life ;n++)
{
year=year+1;
X=cost;
Y=(1/n)*X;
Z=n*Y;
}
}


public static void DoubleDep(int year, float cost, int life)
{
int n = 1;
float X=cost,Y,Z=0;
for ( ; n <=life ;n++)
{
year=year+1;
Y=(float)((2/n)*X);
Z=Y+Z;
X=cost-Y;
}
}


public static void main(String[] args)
{
String des;
int year,cost,life;
float X,Y,Z;

Scanner input= new Scanner(System.in);

System.out.println("Description: ");
des= input.nextLine();
System.out.println("Year of purchase: ");
year= input.nextInt();
System.out.println("Cost : ");
cost= input.nextInt();
System.out.println("Estimated Life: ");
life = input.nextInt();

if ( input.equals("Single Declining") )
SingleDep(year,cost,life);
else
DoubleDep(year,cost,life );

System.out.println("Year Cost Dep. Amt Tot Dep. ");
System.out.println("year X Y Z ");


}

}
avatar
Z*0
2
homework?
你的static function,没有return value。
avatar
w*2
3
哪一个static,没有return value?
求解,发20个包子

【在 Z**0 的大作中提到】
: homework?
: 你的static function,没有return value。

avatar
w*a
4
你在for loop里加个print, 把每个值都打出来。

【在 w*******2 的大作中提到】
: 哪一个static,没有return value?
: 求解,发20个包子

avatar
Z*0
5
SingleDep, DoubleDep
Java参数是called by value。

【在 w*******2 的大作中提到】
: 哪一个static,没有return value?
: 求解,发20个包子

avatar
w*2
6
加了System.out.println(""); 感觉不起作用。
而且应该让我选择时SingleDep还是DoubleDep
但是现在不让我选择

【在 w**a 的大作中提到】
: 你在for loop里加个print, 把每个值都打出来。
avatar
w*2
7
这个return value指的是return(0);吗?
怎么加呢?

【在 Z**0 的大作中提到】
: SingleDep, DoubleDep
: Java参数是called by value。

avatar
Z*0
8
你把main里边的println,放到两个SingleDep和DoubleDep里边。你就不需要考虑返回
数值问题。而且你的println还有问题。
你程序还有其它问题:
1. input
2. System.println

【在 w*******2 的大作中提到】
: 这个return value指的是return(0);吗?
: 怎么加呢?

avatar
w*2
9
意思是将main里面所有的println都放到SingleDep和DoubleDep里边?
还是只将以下部分放入? System.out.println("Year Cost Dep. Amt Tot
Dep. ");
System.out.println("year X Y
Z ");

1,input有什么问题?
暂时没看到error
2,System.println好像也是正常输出的?

【在 Z**0 的大作中提到】
: 你把main里边的println,放到两个SingleDep和DoubleDep里边。你就不需要考虑返回
: 数值问题。而且你的println还有问题。
: 你程序还有其它问题:
: 1. input
: 2. System.println

avatar
Z*0
10
自己试试不就知道。:)
if ( input.equals("Single Declining") )
SingleDep(year,cost,life);
else
DoubleDep(year,cost,life );

System.out.println("Year Cost Dep. Amt Tot Dep. ");
System.out.println("year X Y Z ");
比如:if这个判断。input.equals("Single Declining"),这个是什么意思。
System.out.println("year X Y Z ");这个要打印什么?是不
是要永远打印字符串“year X Y Z"?



【在 w*******2 的大作中提到】
: 意思是将main里面所有的println都放到SingleDep和DoubleDep里边?
: 还是只将以下部分放入? System.out.println("Year Cost Dep. Amt Tot
: Dep. ");
: System.out.println("year X Y
: Z ");
:
: 1,input有什么问题?
: 暂时没看到error
: 2,System.println好像也是正常输出的?

avatar
w*2
11
if ( input.equals("Single Declining") )
SingleDep();
else
DoubleDep( );
这个是指,键盘输入一个字符串,然后选择一个loop,然后执行。
其中括号里面的(year,cost,life),不加上会报错
System.out.println("Year Cost Dep. Amt Tot Dep. ");
System.out.println("year X Y Z ");
是这个想要自动打印这5年的贬值情况,就像题中列表显示的那样。
不是要永远打印字符串“year X Y Z“,如何修改呢?
非常感谢回答,一会发包子

【在 Z**0 的大作中提到】
: 自己试试不就知道。:)
: if ( input.equals("Single Declining") )
: SingleDep(year,cost,life);
: else
: DoubleDep(year,cost,life );
:
: System.out.println("Year Cost Dep. Amt Tot Dep. ");
: System.out.println("year X Y Z ");
: 比如:if这个判断。input.equals("Single Declining"),这个是什么意思。
: System.out.println("year X Y Z ");这个要打印什么?是不

avatar
Z*0
12
你应该去好好去看你的课堂笔记。你的instructor肯定有example。
System.out.println("year X Y Z ");
这个是打印了字符串"year X Y Z "
简单的方法,用string concatenation,更加优美一点,用System.out.format方法。
input.equals("Single Declining"),对吗?首先没有打印提示。其次,是不是缺少
nextLine()? 你可以模仿你自己code里边的代码

System.out.println("Description: ");
des= input.nextLine();
SingleDep基本正确,但是,
Y=(1./n)*X; 《-有错误,怎么可能是/n,是year
DoubleDep里边的logic就不对吧,你自己figure out。

【在 w*******2 的大作中提到】
: if ( input.equals("Single Declining") )
: SingleDep();
: else
: DoubleDep( );
: 这个是指,键盘输入一个字符串,然后选择一个loop,然后执行。
: 其中括号里面的(year,cost,life),不加上会报错
: System.out.println("Year Cost Dep. Amt Tot Dep. ");
: System.out.println("year X Y Z ");
: 是这个想要自动打印这5年的贬值情况,就像题中列表显示的那样。
: 不是要永远打印字符串“year X Y Z“,如何修改呢?

avatar
w*o
13
Java裡面是pass by value, 所以x, y, z的值都不會改變,
你可以用array來代替, 或者用class variable來代替.
上碼
https://ideone.com/0mCdmz
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。