【问题标题】:Value of local variable is not used? Its not supposed to be?不使用局部变量的值?它不应该是吗?
【发布时间】:2012-08-17 23:55:11
【问题描述】:

好的,所以我正在制作一个简单的用户输入类型的计算器,提供加、减、乘、除选项。当我运行程序时,一切都很顺利,直到我按下回车键,希望得到我的结果.......没有任何反应。 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;
    }
}

}

【问题讨论】:

  • 这是作业吗?无论如何,为什么您希望打印任何内容?在声明 ans 之后,你永远不会对它做任何事情。
  • 警告是一个很大的提示。当您收到该警告时,您已将某些内容存储在变量中但从未读回它。因为您从未读回它(根据编译器),您可以确定您忘记向用户显示答案!

标签: java eclipse variables local


【解决方案1】:

你可以在最后加上这个:

System.out.println(ans)

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

【讨论】:

    【解决方案2】:

    你永远不会打印ans...所以只有你的程序知道答案...

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

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

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

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

        【讨论】:

        • 什么时候调试?对于这种情况,您可以设置观察点/表达式
        【解决方案5】:
        1. 正如您在程序中所知道的,您希望使用 变量 an 你会很好地声明它。

        2. 但这里的重点是声明将毫无用处,除非 直到你通过在 System.out.print(ans);行。

        3. 这样做是在告诉编译器你已经给出了一个 对变量的相应调用。如果您想要预期的输出 那么你需要关注它。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-12-08
          • 2014-02-08
          • 2019-08-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-11-25
          相关资源
          最近更新 更多