這是一個課堂作業,那就是:爲什麼for循環不工作我
寫一個程序 1.請求項目的說明,購買的一年,該項目的成本,折舊年限(預計使用年限)和折舊方法。 2.顯示如下圖所示的類似安排的項目折舊時間表:
描述:計算機 購買的年份:1994 費用:2000 估計的使用壽命:折舊的5 方法:雙下降 年的成本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
描述:計算機 購買的年份:1994 費用:2000 估計的使用壽命:5 方法折舊:直線 年成本部分。 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
所以這裏是到目前爲止我的代碼,所遇到的問題(多個)IM是,當我輸入方法貶值,我的代碼似乎不關心哪一個或我輸入什麼,它只顯示兩種折舊方法。 下一個問題是,雖然年正確得到增加,成本,折舊amoutn和總折舊dont,並且我有他們在我for循環,這使我感到困惑。任何幫助建議,將不勝感激。
package proj3;
import java.io.Console;
import java.util.Scanner;
public class depre {
public static void main(String [] args){
Scanner sc = new Scanner(System.in);
System.out.print("Enter item description: ");
String item=sc.nextLine();
Scanner sc1 = new Scanner(System.in);
System.out.print("What year was it purchased? ");
int year =sc1.nextInt();
Scanner sc2 = new Scanner(System.in);
System.out.print("How much did it cost? ");
int cost = sc2.nextInt();
Scanner sc3=new Scanner(System.in);
System.out.print("What is its estimated life? ");
int life=sc3.nextInt();
Scanner sc4= new Scanner(System.in);
System.out.print("What is the method of depreciation? Straight-Line or Double-Declining? ");
String input = sc4.nextLine();
if (input.equals("Straight-Line"));{
SingleDep(item, year, cost, life, input);}
if (input.equals("Double-Declining"));
{DoubleDep(item, year, cost, life, input);}
}
public static void SingleDep(String item, int year, int cost, int life, String input)
{
float price=cost;
float deprec;
int age;
float totaldeprec=0f;
System.out.printf("Year Cost Dep. Amt Tot Dep.\n");
for (int i = 0; i < life; i = i+1) {
age = year + i;
deprec=(1/life)*cost;
totaldeprec=deprec+totaldeprec;
price=(price-deprec);
System.out.printf("%2d %7.2f %7.2f %7.2f\n", age,price,deprec,totaldeprec);
}
}
public static void DoubleDep(String item, int year, int cost, int life, String input)
{ double price = cost;
double deprec;
int age;
double totaldeprec=0;
System.out.printf("Year Cost Dep. Amt Tot Dep.\n");
for (int i = 0; i < life; i = i+1) {
age = year + i;
deprec = (2/life) * cost;
totaldeprec =totaldeprec+ deprec;
price = price-deprec;
System.out.printf("%2d %7.2f %7.2f %7.2f\n", age,price, deprec, totaldeprec);}
}}
感謝Kon,這解決了我的第一個問題!現在爲我的循環... –
當我通過你的代碼,我注意到你不會初始化SingleDep(..)或DoubleDep(..)方法中的原始變量。在對它們進行操作之前,您應該將它們初始化爲0或您需要的任何值。 – Kon