Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-使用If和If else语句的简单税务计算器(2)_Java_If Statement - Fatal编程技术网

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,通常不会修复发布的代码中的错误。通过接受这个答案,你是说问题已经用这个方法解决了。如果你碰巧自己解决了一些问题,如果你愿意,你可以用这个问题来回答你自己的问题。我只是今天早些时候。所以没有新的建议,太感人而无法回答?