亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將 Scanner.in 值從一個方法返回到另一個方法

如何將 Scanner.in 值從一個方法返回到另一個方法

臨摹微笑 2023-11-01 20:56:49
我想制作一些簡單的程序來計算產品的月費率。有兩個輸入:產品成本 - 100-10000 之間和費率數量 - 6-48 之間。我想像下面的代碼那樣做到這一點:import java.util.Scanner;public class Calculator {Scanner sc = new Scanner (System.in);double productCost;int numberOfRates;double loanInterestRate;double monthlyRate;Double print () {Calculator c = new Calculator();System.out.println ("Enter the value of your product from 100 to 10 000 : ");productCost=sc.nextDouble();if (productCost < 100){    System.out.println ("You have to choose price between 100 to 10000. Try again: ");    c.print();} else if (productCost >10000){    System.out.println ("You have to choose price between 100 to 10000. Try again: ");    c.print();} else if (productCost >= 100 || productCost <=10000){    c.print1();    return = productCost;   // how to return productCost to be used in next method print1()?}else return null;   }void print1(){Calculator c = new Calculator(); System.out.println ("Now enter how many rates do you want to pay from 6 to 48: ");numberOfRates=sc.nextInt();if (numberOfRates<6){    System.out.println ("You can't choose this number of rates. Choose between 6-48: ");    c.print1();} else if (numberOfRates>48){    System.out.println ("You can't choose this number of rates. Choose between 6-48: ");    c.print1();} else if (numberOfRates>=6 || numberOfRates<=12) {    loanInterestRate=1.025;    monthlyRate = (productCost*loanInterestRate)/numberOfRates;    System.out.printf("Your monthly rate is: "+ "%.2f%n",monthlyRate);} else if (numberOfRates>=13 || numberOfRates <=24 ) {    loanInterestRate=1.05;    monthlyRate = (productCost*loanInterestRate)/numberOfRates;    System.out.printf("Your monthly rate is: "+ "%.2f%n",monthlyRate);} else if (numberOfRates >=25|| numberOfRates<=48){    loanInterestRate=1.1;    monthlyRate = (productCost*loanInterestRate)/numberOfRates;    System.out.printf("Your monthly rate is: "+ "%.2f%n",monthlyRate);}}}問題是什么,我不知道如何從方法“print()”返回“雙倍productCost”。ProductCost 是從輸入中獲取的,這是雙倍的,但 NetBeans 向我表明它不是正確的類型。有人能幫我理解問題出在哪里嗎?
查看完整描述

2 回答

?
收到一只叮咚

TA貢獻1821條經驗 獲得超5個贊

簡單地做


    return productCost;

return是關鍵字,而不是變量。它“返回”給定值并退出函數,以便調用該函數的實體可以執行以下操作:


public static void main(String[] args) {

    ...

    double cost = calc.print();  // note calc.print() PRODUCES a value, which we assign to `cost`

    ...

}

然后,您可以執行任何您想要的操作cost(或任何您選擇的變量命名方式),包括將其傳遞給另一個函數。


查看完整回答
反對 回復 2023-11-01
?
滄海一幻覺

TA貢獻1824條經驗 獲得超5個贊

您的程序需要在一些地方進行更改。我已經完成了這些更改并寫在更新后的程序下面:


import java.util.Scanner;


class Calculator {

    Scanner sc = new Scanner(System.in);

    double productCost;

    int numberOfRates;

    double loanInterestRate;

    double monthlyRate;


    void print() {

        Calculator c = new Calculator();

        System.out.println("Enter the value of your product from 100 to 10 000 : ");

        productCost = sc.nextDouble();

        if (productCost < 100) {

            System.out.println("You have to choose price between 100 to 10000. Try again: ");

            c.print();

        } else if (productCost > 10000) {

            System.out.println("You have to choose price between 100 to 10000. Try again: ");

            c.print();

        } else if (productCost >= 100 || productCost <= 10000) {

            print1(productCost);            

        }

    }


    void print1(double productCost) {

        Calculator c = new Calculator();

        System.out.println("Now enter how many rates do you want to pay from 6 to 48: ");

        numberOfRates = sc.nextInt();

        if (numberOfRates < 6) {

            System.out.println("You can't choose this number of rates. Choose between 6-48: ");

            c.print1(productCost);

        } else if (numberOfRates > 48) {

            System.out.println("You can't choose this number of rates. Choose between 6-48: ");

            c.print1(productCost);

        } else if (numberOfRates >= 6 || numberOfRates <= 12) {

            loanInterestRate = 1.025;

            monthlyRate = (productCost * loanInterestRate) / numberOfRates;

            System.out.printf("Your monthly rate is: " + "%.2f%n", monthlyRate);

        } else if (numberOfRates >= 13 || numberOfRates <= 24) {

            loanInterestRate = 1.05;

            monthlyRate = (productCost * loanInterestRate) / numberOfRates;

            System.out.printf("Your monthly rate is: " + "%.2f%n", monthlyRate);

        } else if (numberOfRates >= 25 || numberOfRates <= 48) {

            loanInterestRate = 1.1;

            monthlyRate = (productCost * loanInterestRate) / numberOfRates;

            System.out.printf("Your monthly rate is: " + "%.2f%n", monthlyRate);

        }

    }

}


public class MonthlyRate {

    public static void main(String[] args) {

        Calculator calc = new Calculator();

        calc.print();

        // TODO code application logic here

    }


}

將您的程序與此更新的程序進行比較后,很容易理解這些變化。盡管如此,如果您需要任何進一步的幫助,請隨時告訴我。


查看完整回答
反對 回復 2023-11-01
  • 2 回答
  • 0 關注
  • 149 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號