我不明白为什么我的计算不起作用

我对编程很陌生。这是 carHire 类。两者之一。我需要开发一个基于 GUI 的租车应用程序。所以当我输入时,似乎一切正常,但我的租金仍然是0。我想不通。


`公共类租车{


    private String customerName;

    private String licenseNumber;

    private int daysHired;


        CarHire(){

            customerName=null;

            licenseNumber=null;

            daysHired=0;

            }

        CarHire(String customerName, String licenseNumber, int daysHired){

            this.customerName = customerName;

            this.licenseNumber = licenseNumber;

            this.daysHired = daysHired;

            }

            public void setCustomerName(String customerName){

                this.customerName = customerName;

            }

            public void setLicenseNumber(String licenseNumber){

                this.licenseNumber = licenseNumber;

            }

            public void setDaysHired(int daysHired){

                this.daysHired = daysHired;

            }


            public String getCustomerName()

            {

                return customerName;

            }

            public String getLicenseNumber()

            {

                return licenseNumber;

            }

            public int getDaysHired()

            {

                return daysHired;

            }


    public double calculateHireRental(){

        final double BASE_RATE = 34.5;

    final double NEXT_TIER_RATE = 30.5;

    final double LAST_TIER_RATE = 22.5;


    final int NEXT_TIER_START_DAY=4;

    final int LAST_TIER_START_DAY=7;


    double rental= 0.0;

        int days = 0;


    if(days<NEXT_TIER_START_DAY){   

            rental=days*BASE_RATE;

     } 

        else if(days<=LAST_TIER_START_DAY){

            rental=3*BASE_RATE+(days-3)*NEXT_TIER_RATE;

        }

        else{

    rental=3*BASE_RATE+4*NEXT_TIER_RATE+(days-7)*LAST_TIER_RATE;

        }

        return rental;

    }

}`

以下是GUI类。


DIEA
浏览 129回答 3
3回答

哔哔one

在您提供的代码中:在您的 GUI 中,您将结果分配给“daysHired”变量&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;daysHired&nbsp;=&nbsp;Integer.parseInt(daysField.getText());但是在您的 CarHire 课程中,变量 days 已经预定义为 0:int&nbsp;days&nbsp;=&nbsp;0;所以无论你乘以“天”(乘以 0) - 你总是会得到 0:&nbsp;rental=days*BASE_RATE;

www说

public double calculateHireRental(){&nbsp; &nbsp; final double BASE_RATE = 34.5;final double NEXT_TIER_RATE = 30.5;final double LAST_TIER_RATE = 22.5;final int NEXT_TIER_START_DAY=4;final int LAST_TIER_START_DAY=7;double rental= 0.0;/*Delete the "int days = 0;" variable and use the class member "daysHired" instead*/if(daysHired<NEXT_TIER_START_DAY){&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; rental=daysHired*BASE_RATE;&nbsp;}&nbsp;&nbsp; &nbsp; else if(daysHired<=LAST_TIER_START_DAY){&nbsp; &nbsp; &nbsp; &nbsp; rental=3*BASE_RATE+(daysHired-3)*NEXT_TIER_RATE;&nbsp; &nbsp; }&nbsp; &nbsp; else{rental=3*BASE_RATE+4*NEXT_TIER_RATE+(daysHired-7)*LAST_TIER_RATE;&nbsp; &nbsp; }&nbsp; &nbsp; return rental;}尝试这个...

幕布斯6054654

在calculateHireRental()你有int days = 0;,所以第一个if是真的,你返回days * BASE_RATE哪个是0。删除days变量并改用类成员daysHired。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java