[英]A recursive program to help calculate two values in Java
我的編程課需要一些幫助。 這是一個遞歸程序,它采用小計和用戶給出的小費率,輸出全部總數和小費成本。 這是我到目前為止所得到的,但由於某種原因它不起作用:
import java.io.*;
import java.until.Scanner;
public class gratuity {
private double total;
private double subTotal;
private double gratRate;
private double newSubTotal;
private double newGratRate;
public static void main(String[] args) {
System.out.print("Enter the subtotal: ");
System.out.print("Enter the gratuity rate: ");
Scanner scan = new Scanner(System.in);
Scanner myScan = new Scanner(System.in);
double subtotal = scan.nextDouble();
double gratRate = myScan.nextDouble();
System.out.println("The Gratuity is: " + newSubtotal);
System.out.println("The Total is: " + Total);
}
public static double computeGratRate() {
double newGratRate = (gratRate/100);
return newGratRAte;
}
public static double computeNewSub() {
double newSubTotal - (subTotal * newGratRate);
return newSubTotal;
}
public static double computeTotal() {
double total = (newSubTotal + newGratRate);
return total;
}
}
如果有人能幫我弄清楚如何解決它,我將不勝感激! 謝謝!
一些東西。
您正在 Main 中創建名為“subtotal”和“gratRate”的新變量。 這些值覆蓋類的成員變量。
你的問題無論如何都不會編譯,因為......
您所有的方法都是靜態的,這沒關系,但是這些靜態方法正在訪問非靜態變量。 使這個類的所有成員變量都是靜態的。 (或者使 Main 之外的所有內容都不是靜態的,然后將“Main”作為存根來創建小費類的實例。
您需要導入java.util.Scanner
,而不是java.until.Scanner
。
這一行是一個編譯器錯誤:
double newSubTotal - (subTotal * newGratRate);
我想你的意思是:
double newSubTotal = (subTotal * newGratRate);
現在應該足夠了……繼續嘗試。
你的意思是:
import java.util.Scanner;
public class Gratuity {
private double subTotal;
private double gratRate;
public static void main(String[] args) {
Gratuity gratuity = new Gratuity();
System.out.print("Enter the subtotal: ");
Scanner scan = new Scanner(System.in);
gratuity.setSubTotal(scan.nextDouble());
System.out.print("Enter the gratuity rate: ");
Scanner myScan = new Scanner(System.in);
gratuity.setGratRate(myScan.nextDouble());
System.out.println("The new GratRate is: " + gratuity.getNewGratRate());
System.out.println("The New Sub is: " + gratuity.getNewSub());
System.out.println("The Total is: " + gratuity.getTotal());
}
public double getNewGratRate() {
return gratRate/100;
}
public double getNewSub() {
return getNewGratRate() * subTotal;
}
public double getTotal() {
return getNewSub() + getNewGratRate();
}
public double getSubTotal() {
return subTotal;
}
public void setSubTotal(double subTotal) {
this.subTotal = subTotal;
}
public double getGratRate() {
return gratRate;
}
public void setGratRate(double gratRate) {
this.gratRate = gratRate;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.