簡體   English   中英

Java中幫助計算兩個值的遞歸程序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM