如何打印变量

时间:2016-11-23 16:58:59

标签: java variables initialization

在我的代码中,我需要打印出tax变量。它不起作用,我想我知道为什么我只是不知道该怎么做。我需要初始化变量tax,但我不知道如何在主类中。这是我的代码。

   System.out.println("Enter your income!");
   double income = scan.nextDouble();

   if (income < 50000)
   {
       double tax = income / 100;
   }
   else if (income < 75000)
   {
       double tax = income / 100 * 2;
   }
   else if (income < 100000)
   {
       double tax = income / 100 * 3;
   }
   else if (income < 250000)
   {
       double tax = income / 100 * 4;
   }
   else if (income < 500000)
   {
       double tax = income / 100 * 5;
   }
   else if (income > 500000)
   {
       double tax = income / 100 * 6;
   }

1 个答案:

答案 0 :(得分:1)

double tax = 0.0;

此行应高于代码的其余部分。然后在你的if语句中删除税的声明,而只是将你的表达式分配给税:

tax = income / 100 * some number;

现在代码中发生的事情是,对于每个其他if语句,都有一个不同的tax变量,并且由于java中作用域的行为,程序只能看到else中的tax变量声明在。例如:

if(condition){
  double tax = number;
}
else if(condition){
  double tax = number;
}
else{
   double tax = number;
}

此代码块与您拥有的类似。此代码块中的税变量只能在各自的代码块中使用。只有花括号之间才存在每个税变量。离开花括号后,变量不再存在。它被java删除。然后,当你到达下一组大括号并重新申报税时,与此代码相比,这是一个完全不同的变量

function(){
    double tax = 0.0;
    if(condition){
       tax = number;
    }
    else if(condition){
       tax = number;
    }
    else{
       tax = number;
     }
  }

tax在整个if语句中是相同的变量,因为它存在于函数的花括号之间,而不仅存在于if语句的花括号之间,因为它是在if语句之外声明的。