如何获取if语句中计算的值并在if语句之外使用它?

时间:2015-04-12 20:07:44

标签: java variables if-statement

我想知道如何从if语句中获取计算值,并将该值用于其他内容。这只是我代码的一部分,我需要帮助的部分:

    double taxedIncome;
    double reducedTax;
    int reductionFactor1 = numberSchool;
    int reductionFactor2 = numberChildren - numberSchool;

    if (income == 10000 && housingCosts > 8000 || income < 10000) {
        taxedIncome = income * 0.18;
    }

    if (housingCosts < 6000 && numberChildren >= 2 && numberSchool >= 1) {
        reducedTax = taxedIncome - ((1000 * reductionFactor1) + (500 * reductionFactor2));
        System.out.println(reducedTax);
    }

正如您在第一个if语句中所看到的,它表示如果收入(用户输入的值)等于10000且住房成本(也是用户输入的)大于8000或者收入低于10000 ,那么收入将乘以0.18。

taxedIncome = income * 0.18;

但是,当我尝试使用第二个if语句reducedTax = taxedIncome - ((1000 * reductionFactor1) + (500 * reductionFactor2));中来自第一个if语句的计算值的计算值时,它会给出错误:

  

变量taxedIncome可能尚未初始化

所以我的问题是,如何从第一个if语句中获取该计算值并在第二个语句中使用它?

2 个答案:

答案 0 :(得分:3)

有很多方法可以做到这一点:

  • 在if之前计算并保存,在if。

  • 中重复使用
  • 计算方法也可以通过if

  • 调用
  • 使用赋值返回值的事实

但是,您遇到的问题特别是在使用之前并非所有路径都初始化taxedIncome

你告诉计算机,如果某个案例属实,那么taxedIncome = income * 0.18;它会问,“好吧,那么如果它不是什么应该是什么?”

如果答案不完全相同,请考虑在第一个if中添加else。如果您在此处设置默认值,请考虑在开始时将taxedIncome设置为默认值。

答案 1 :(得分:1)

在声明变量时初始化变量是一种很好的做法。通常,您需要将数字初始化为零。

在您的情况下,您的if语句可能无法执行,因此taxedIncome可能永远不会被分配值

    double taxedIncome = 0; // Initialize to zero or some default value
    double reducedTax = 0; // Initialize to zero or some default value
    int reductionFactor1 = numberSchool;
    int reductionFactor2 = numberChildren - numberSchool;

    if (income == 10000 && housingCosts > 8000 || income < 10000) {
        taxedIncome = income * 0.18;
    } else {
        // If you initialized taxedIncome to zero you may want to default it to some other value if you if statement results in false.
        // taxedIncome = ???
    }

    if (housingCosts < 6000 && numberChildren >= 2 && numberSchool >= 1) {
        reducedTax = taxedIncome - ((1000 * reductionFactor1) + (500 * reductionFactor2));
        System.out.println(reducedTax);
    }