在扫描仪类中加倍,我如何让它工作?

时间:2015-02-03 15:32:40

标签: java

此代码在扫描器类中出现双重问题,问题出在第一个if语句的行。我尝试为我的班级创建一个简单的计算器,输入限制为100,如果数字大于100,则将输入设置为100表示​​上限。 无论如何,我只是难过,我无法联系到我的老师,我已经在谷歌上找了很多方法,并查看了一些旧的项目。越简单就越好。

    {
        // create a Scanner to obtain input from the command window
        Scanner input = new Scanner(System.in);

        double number1; // first number to add
        double number2; // second number to add
        double sum; // sum of number1 and number2

        System.out.print("Enter first number: "); // prompt
        {
            if ( number1 >= 100 )
            {
                number1 = input.nextDouble("100");
            }

            else if ( number1 <= 100 )
            {
                number1 = input.nextDouble();
            }
        }

        System.out.print("Enter second number: "); // prompt
        number2 = input.nextDouble(); // read second number from user

        sum = number1 + number2; // add numbers, then store total in sum

        System.out.printf("Sum is %.0f\n", sum); // display sum
    }
} // end class Addition

3 个答案:

答案 0 :(得分:0)

您的第一个问题是您在初始化之前使用该变量。

双号1; ... if(number1&gt; = 100)

没有赋值给number1

答案 1 :(得分:0)

所有这些变量都是局部变量,并且局部变量没有任何默认值,您需要在使用前初始化它们

    double number1; // All three of them are not initialized 
    double number2; 
    double sum; 

所以要么使用

 number1=input.getDouble();
 if(number1>100){
 // do whatever you want to do
 }
 else{
      // do whatever you want to do
 }

初始化

答案 2 :(得分:0)

在为其分配值之前,您尝试使用number1的值。这应该会给你以下错误&#34;变量&#39; number1&#39;可能尚未初始化&#34;

您可以使用Math.min设置上限,以便number1最多为100:

Scanner input = new Scanner(System.in);

System.out.print("Enter first number: "); // prompt
double number1 = Math.min(input.nextDouble(), 100); // first number to add

System.out.print("Enter second number: "); // prompt
double number2 = input.nextDouble(); // read second number from user

double sum = number1 + number2; // add numbers, then store total in sum

System.out.printf("Sum is %.0f\n", sum); // display sum

作为旁注,最好将变量声明为尽可能接近使用它们的位置。