首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >税务收入计划(如报关单)

税务收入计划(如报关单)
EN

Stack Overflow用户
提问于 2022-09-04 06:16:49
回答 1查看 57关注 0票数 0
代码语言:javascript
复制
import java.util.Scanner;
public class CardenasE_IncomeTax {
    
    public static void main(String[] args) {
        String username = "CardenasE";
        String realpass = "CarErick12!";
        boolean isMarried = true;
        boolean isNotMarried = false;

        double tax1 = 0;
        double tax2 = 0;
        double tax3 = 0;

        double RATE1 = 0.10;
        double RATE2 = 0.12;
        double RATE3 = 0.22;
        double RATE4 = 0.24;
        double RATE5 = 0.32;

        double limitSingle1 = 10000;
        double limitSingle2 = 40000;
        double limitSingle3 = 90000;
        double limitSingle4 = 165000;


        double limitMarried1 = 20000;
        double limitMarried2 = 80000;
        double limitMarried3 = 170000;

        Scanner input = new Scanner(System.in);

        System.out.println("Username: ");
        String user = input.nextLine();

        System.out.println("Password:");
        String pass = input.nextLine();

        if (user.equals(username) && pass.equals(realpass)) {
            System.out.println("Login Successful!");
        } else if (!user.equals(username) || !pass.equals(realpass)) {
            System.out.println("Invalid Credentials!");
            return;
        }

        System.out.printf("%n What is your gross income?: ");
        double grossIncome = input.nextInt();

        System.out.println("Are you married?: (Type 's' for single and 'm' for married.) ");
        String maritalStatus = input.next();

        if (maritalStatus.equals("s")) {
            if (grossIncome <=limitSingle1)
                tax1 = grossIncome * RATE1;
            System.out.println("Your income is: " + tax1);
            return;
        } else if (grossIncome > limitSingle1 && grossIncome <= limitSingle2){
            tax2 = grossIncome * RATE2;
            System.out.println("Your income is: " + tax2);
        } 
    } 
}

当使用第一个限制(从0到10,000为10% )的括号时,它给出了正确的解,但我有另一个if语句,它大于10,000,但小于或等于40,000,它的设置为第一个if语句,但它给出了0作为答案,不管我加了多少个数字。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-04 07:27:02

尝试将总收入中的else if块移到语句if (grossIncome <=limitSingle1)中嵌套的if中。如下所示:

代码语言:javascript
复制
    if (maritalStatus.equals("s")) {
        if (grossIncome <=limitSingle1) {
            tax1 = grossIncome * RATE1;
            System.out.println("Your income is: " + tax1);
        } else if (grossIncome > limitSingle1 && grossIncome <= limitSingle2) {
            tax2 = grossIncome * RATE2;
            System.out.println("Your income is: " + tax2);
        }  
        return;

我们可以通过删除tax1tax2tax3变量进一步改进您的代码,并且只有tax变量。这是为了减少重复打印出局。

代码语言:javascript
复制
    if (maritalStatus.equals("s")) {
        if (grossIncome <=limitSingle1) {
            tax = grossIncome * RATE1;
        } else if (grossIncome > limitSingle1 && grossIncome <= limitSingle2) {
            tax = grossIncome * RATE2;
        }  
        System.out.println("Your income is: " + tax);
        return;

作为最佳实践,如果你的价值观是不应该改变的。您应该添加final关键字以避免修改。

double final RATE1 = 0.10;

此外,您可以通过在Constants.java文件中移动常量来改进这一点。您也可以将其实现为HashMap来进行查找。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73597164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档