Java 如何获取在if语句中计算的值并在if语句之外使用它?
我想知道如何从if语句中获取计算值,并将该值用于其他内容。这只是我代码的一部分,我需要帮助:Java 如何获取在if语句中计算的值并在if语句之外使用它?,java,variables,if-statement,Java,Variables,If Statement,我想知道如何从if语句中获取计算值,并将该值用于其他内容。这只是我代码的一部分,我需要帮助: double taxedIncome; double reducedTax; int reductionFactor1 = numberSchool; int reductionFactor2 = numberChildren - numberSchool; if (income == 10000 && housingCosts > 800
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语句中第一个if语句的计算值时,reducedTax=taxedIncome-((1000*reducedFactor1)+(500*reducedFactor2))代码>,它给了我一个错误:
变量taxedIncome可能尚未初始化
因此,我的问题是,如何从第一个if语句中获取计算值并在第二个if语句中使用它?有多种方法可以做到这一点:
- 在if之前计算并保存,在if中重用
- 在if也可以调用的方法中计算
- 使用赋值返回值这一事实
但是,您遇到的问题是,并非所有路径在使用之前都会初始化taxedIncome
你告诉电脑,如果某个案件是真的,那么taxedIncome=income*0.18代码>它会问,“好吧,如果不是,它应该是什么?”
如果答案不是完全相同的,考虑将另一个添加到第一个IF中。如果在这里设置默认值,请考虑将代码< >税项收入> /代码>设置为开始时的默认值。
< p>在声明变量时初始化变量是一个好的做法。通常,您希望将数字初始化为零
在您的情况下,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);
}
double taxedIncome=0;//初始化为零或某个默认值
双还原最大值=0;//初始化为零或某个默认值
int reductionFactor1=numberSchool;
int reductionFactor2=numberChildren-numberSchool;
如果(收入=10000和住房成本>8000 | |收入<10000){
所得税=收入*0.18;
}否则{
//若初始化的值为零,若If语句结果为false,则可能希望将其默认为其他值。
//税收收入=???
}
如果(住房成本<6000&&numberChildren>=2&&numberSchool>=1){
reducedTax=税收收入-((1000*扣减系数1)+(500*扣减系数2));
系统输出打印LN(减少的最大值);
}
提示:如果代码未输入,会发生什么情况?@boristesspider我现在明白你的意思了。如果用户输入的值不符合if语句的条件,我应该做一个else语句。所以我所做的是在一个else语句中做taxedIncome=income
,我刚刚修改了它,现在它是if(income==10000&&housingCosts>8000 | | income<10000){taxedIncome=income*0.18;}else{taxedIncome=income}
,它解决了这个问题。你认为这样做对吗?行得通。但听起来很像一个默认值。考虑把它设置在开始时,你的代码将对其他特殊情况的添加开放。所以你认为我应该设置<代码>双重征税收入=收入;<代码>在开始时?它使您的代码可以添加更多案例。默认值不应隐藏在if结构中。一开始就大声自豪地说出来。好的,谢谢你的帮助,它现在起作用了。如果我遇到更多的问题,我一定会更新这个问题。我添加了一个else语句,就像我刚才说的taxedIncome=income
一样,现在是If(income==10000&&housingCosts>8000 | | income<10000){taxedIncome=income*0.18;}else{taxedIncome=income;}
你认为这样做对吗?
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);
}