Java-使用If和If else语句的简单税务计算器(2)
我的代码有问题:Java-使用If和If else语句的简单税务计算器(2),java,if-statement,Java,If Statement,我的代码有问题: TotalTax=计算所得税(收入)->带红色下划线 else((收入>200000))->显示错误“;”应为“ 这是密码 import java.util.Scanner; public class PracticeProbLab4 { /** * @param args the command line arguments */ public static void main(String[] args) { Scanner sc = new S
TotalTax=计算所得税(收入)代码>->带红色下划线
->显示错误else((收入>200000))
“;”应为“
import java.util.Scanner;
public class PracticeProbLab4 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter your Income: ");
String In = sc.nextLine();
Double Income = Double.parseDouble(In);
double TotalTax;
TotalTax = calculateAndPrintTax(Income);
System.out.println("Your taxes are: " + TotalTax);
}
static double calculateAndPrintTax(double Income, double TotalTax) {
double tax;
double difftax1;
double difftax2;
double difftax3;
double difftax4;
if ((Income >= 45282) && (Income <= 200000)) {
if (Income <= 45282) {
tax = 45282 * 0.15;
TotalTax = tax;
} else if (Income > 45282 && Income <= 90653) {
tax = 45282 * 0.15;
difftax1 = (Income - 45282) * .205;
TotalTax = tax + difftax1;
} else if ((Income > 90563) && (Income <= 140388)) {
tax = 45282 * 0.15;
difftax1 = (Income - 45282) * .205;
difftax2 = (Income - 90563) * 0.26;
TotalTax = tax + difftax1 + difftax2;
} else if ((Income > 140388) && (Income <= 200000)) {
tax = 45282 * 0.15;
difftax1 = (Income - 45282) * .205;
difftax2 = (Income - 90563) * 0.26;
difftax3 = (Income - 140388) * 0.29;
TotalTax = tax + difftax1 + difftax2 + difftax3;
} else if ((Income > 200000)) {
tax = 45282 * 0.15;
difftax1 = (Income - 45282) * .205;
difftax2 = (Income - 90563) * 0.26;
difftax3 = (Income - 140388) * 0.29;
difftax4 = (Income - 200000) * 0.33;
TotalTax = tax + difftax1 + difftax2 + difftax3 + difftax4;
} else((Income > 200000)) {
tax = 45282 * 0.15;
difftax1 = (Income - 45282) * .205;
difftax2 = (Income - 90563) * 0.26;
difftax3 = (Income - 140388) * 0.29;
difftax4 = (Income - 200000) * 0.33;
TotalTax = tax + difftax1 + difftax2 + difftax3 + difftax4;
}
return TotalTax;
}
}
}
import java.util.Scanner;
公共课实习问题4{
/**
*@param指定命令行参数
*/
公共静态void main(字符串[]args){
扫描仪sc=新的扫描仪(System.in);
System.out.println(“输入您的收入:”);
字符串In=sc.nextLine();
双倍收入=Double.parseDouble(英寸);
双重总税;
总税=计算所得税(收入);
System.out.println(“您的税是:“+TotalTax”);
}
静态双重计算所得税(双重收入,双重总税){
双重征税;
双扩散1;
双扩散2;
双扩散3;
双扩散4;
如果((收入>=45282)和(收入200000)){
税=45282*0.15;
difftax1=(收入-45282)*.205;
difftax2=(收入-90563)*0.26;
difftax3=(收入-140388)*0.29;
difftax4=(收入-200000)*0.33;
总税=税+差税1+差税2+差税3+差税4;
}
退税;
}
}
}
您的第一个问题是由于您正在调用的方法的签名
静态双重计算折旧税(双重收入,双重总税)
预计将向其传递两倍。您尝试只发送一个
TotalTax=计算所得税(收入);//您需要另一个双精度值。
但这首先是不必要的。您尝试将总税额传递给计算总税额的方法。事实上,在为其分配新值之前,您甚至不使用它可能持有的值。所以,从方法的签名中删除它,使其
calculateAndPrintTax(double Income) {
// ...and add...
double TotalTax = 0;
}
…在顶部替换你经过的那个。像你最初那样称呼它
TotalTax = calculateAndPrintTax(Income);
这实际上不是你最好的选择,但是改变你在这个答案中的内容太多了
第二个问题正如它所暗示的那样;else/if
有条件,而不是典型的else
。因此,要么将其设置为if/else
,要么删除该条件。我猜后者可能更合适,因为它与上面if/else
中的条件完全相同
另外一个与您的问题没有直接关系的注意事项-我认为仔细查看代码并注意其中有多少重复是明智的,并尝试找出一种方法使其更加简洁。非常简单的错误
static double calculateAndPrintTax(双重收入,双重总税)
是calculateAndPrintTax
方法的签名,您应该向其提供两个double
值
另一个问题是,在
else
claus中,您没有给出任何条件。如果(条件)我已经做了必要的更改,并将TotalTax添加到TotalTax=calculateAndPrintTax(收入,TotalTax),您应该使用,但是括号中的TotalTax用红色下划线表示……这一定是由于申报时没有任何价值。从这个开始double TotalTax=0
但是,我已经做了必要的更改,并将TotalTax添加到TotalTax=calculateAndPrintTax(收入,TotalTax),但是括号中的TotalTax用红色下划线表示。...@R.Bar,我相信如果针对上述评论的编辑解决了您的问题,您会接受这一答案。是的,还有,请让我知道如何用新代码更新此帖子,因为我是stackoverflow的新手,Thanks@R.Bar,通常不会修复发布的代码中的错误。通过接受这个答案,你是说问题已经用这个方法解决了。如果你碰巧自己解决了一些问题,如果你愿意,你可以用这个问题来回答你自己的问题。我只是今天早些时候。所以没有新的建议,太感人而无法回答?