0

好的,所以我正在制作一个简单的用户输入类型的计算器,提供加、减、乘、除选项。当我运行程序时,一切都很顺利,直到我按下回车键,希望得到我的结果.......没有任何反应。并且 eclipse 给出的唯一警告是未使用局部变量 answer 的值....这是我的代码:

class apples {
public static void main(String args[]) {
    System.out
            .println("To Add Press 1 , To Subtract Press 2, To Multiply Press 3, To Divide Press 4");
    Scanner sc = new Scanner(System.in);
    int i = sc.nextInt();
    double fnum, snum, answer;

    if (i == 1) {
        System.out.println("Enter Your First Number: ");
        fnum = sc.nextDouble();
        System.out.println("Enter Your Second Number");
        snum = sc.nextDouble();
        answer = fnum + snum;
    } else if (i == 2) {
        System.out.println("Enter Your First Number: ");
        fnum = sc.nextDouble();
        System.out.println("Enter Your Second Number");
        snum = sc.nextDouble();
        answer = fnum - snum;
    } else if (i == 3) {
        System.out.println("Enter Your First Number: ");
        fnum = sc.nextDouble();
        System.out.println("Enter Your Second Number");
        snum = sc.nextDouble();
        answer = fnum * snum;
    } else if (i == 4) {
        System.out.println("Enter Your First Number: ");
        fnum = sc.nextDouble();
        System.out.println("Enter Your Second Number");
        snum = sc.nextDouble();
        answer = fnum / snum;
    }
}

}

4

5 回答 5

4

您可以在最后添加:

System.out.println(ans)

(我会把它放在评论中,但我没有代表)

于 2012-08-17T23:57:30.510 回答
2

你从不打印ans……所以只有你的程序知道答案……

于 2012-08-17T23:57:22.850 回答
0
  1. 正如您在程序中所知道的那样,您想使用变量打印一些东西,并且您会很好地声明它。

  2. 但这里的重点是,除非您通过在 System.out.print(ans); 中使用该变量来充分利用该变量,否则该声明将毫无用处。线。

  3. 通过这样做,您告诉编译器您已经对变量进行了相应的调用。如果您想要预期的输出,那么您需要遵循它。

于 2014-06-17T06:18:46.973 回答
0

不使用局部变量的值?它不应该是吗?

如果不应该使用局部变量的值,那么首先将值存储在局部变量中是没有意义。“修复”是重新获得变量。

这个编译警告是为了告诉你你可能忘记了一些东西。要么您忘记删除不再需要的声明,要么您忘记添加将使用该变量的代码。由您决定这两种情况中的哪一种是正确的。

1 - 实际上,将表达式分配给您不打算使用的变量有时很有用;例如,这样您就可以在调试时看到它是什么。但是,您应该避免在生产代码中这样做,因为它会使代码不可读,并且可能会降低效率。

于 2012-08-18T01:12:25.383 回答
0

您存储计算的答案,但您从不使用或打印出来。该程序完全按照您的要求执行,然后完成。您只需要显示答案变量

于 2012-08-17T23:59:09.433 回答