2016-11-23 144 views
0

在我的代码中,我需要打印出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; 
    } 
+0

为什么不用taged java? –

+0

'tax'只存在于声明的块中('if'语句)。你将不得不在你的'if'之外声明它,只需在'if'中给它赋予适当的值。 – Gavin

+0

您需要定义变量以外的变量if勺 –

回答

1
double tax = 0.0; 

此行应该是你的代码的其余部分的上方。然后在你的if语句去掉税的申报,而是只分配你的表情税:

tax = income/100 * some number; 

什么在代码中正在发生的事情,现在是有一个不同的税收变量对每个else if语句可你有,而且由于在Java范围的行为的程序只能看看它在声明的其他内部税收变量,例如:

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; 
    } 
    } 

税它是一个完全不同的变量始终是同一变量,如果在这里声明,因为它的花括号之间存在该函数不仅在if语句的大括号之间,因为它是在if语句之外声明的。