0

好的,所以我似乎无法通过将 inputP * inputR 相乘来找到我的兴趣,假设这是因为我的扫描仪变量 inputR 和 inputP 即使在使用此方法后仍未转换为双变量: 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方法返回一个doublevalue,您必须将该值捕获到一个double变量中,或者内联使用它。

还有一点:你不能Scanners在同一个输入流上使用两个。只使用一个并根据需要多次调用它的nextDouble方法,它每次都会从输入流中检索下一个双精度解析。

于 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 回答