0

わかりましたので、inputP * inputR を乗算しても興味を見つけることができないようです。これは、このメソッドを使用した後でも、スキャナー変数 inputR と inputP がまだ double 変数に変換されていないためだと想定しています: System.out.println(inputR.nextDouble( )); - 何が問題ですか?

import java.util.Scanner;

public class test {


    //This program will display the value of the principle for each of the next 5 years

     public static void main(String[] args) { 

Scanner inputR = new Scanner(System.in); Scanner inputP = new Scanner(System.in);
double years = 0;   

    System.out.println("Please enter the principle value for year one: ");

    System.out.println(inputP.nextDouble());


    System.out.println("Please enter the interest rate for year one: ");

    System.out.println(inputR.nextDouble());

    while (years < 5) {

    double interest;
    years = years + 1;

        interest = inputP * inputR;

        principle = inputP + interest; 

        System.out.println("Your principle after 5 years is: " + principle);

    } 
    }
}
4

2 に答える 2

3

変数を「に変換するScanner」ことはできませんdouble。Javaのスペシャリストにとって、そのような考えを考えることさえ異質です。JavaScript などの動的言語のバックグラウンドがあるかもしれませんが、この概念は少なくともある程度は理にかなっています。

実際には、nextDoubleメソッドがvalueを返し、doubleその値を変数に取り込むdoubleか、インラインで使用する必要があります。

Scannersもう 1 つのポイント:同じ入力ストリームで2 つを使用してはなりません。1 つだけを使用して、必要な回数だけそのnextDoubleメソッドを呼び出します。そのたびに、入力ストリームから次の double が解析されて取得されます。

于 2013-10-28T20:35:16.843 に答える
0

このスニペットですべての問題が解決するわけではありませんが、正しい道に進むことができると思います。

    // This program will display the value of the principle for each of the
    // next 5 years

    Scanner input = new Scanner(System.in);
    Double principle, interest;
    int year = 0;

    //System.out.println("Please enter the year value: ");
    //year = input.nextInt();

    System.out.println("Please enter the principle value: ");
    principle = input.nextDouble();

    System.out.println("Please enter the interest rate: ");
    interest = input.nextDouble();

    while (year < 5) {
        interest  = interest + interest;
        principle = principle + interest;
        year++;
    }

    System.out.println("Your principle after 5 years is: " + principle);
于 2013-10-28T20:40:46.570 に答える