簡體   English   中英

用任何方法更好地構造Java中的if語句

[英]Any way to better structure many if else statements in Java

這是我為稅務程序編寫的代碼,是否有更好的方法來構造if else語句,也有更好的方法來編寫程序。 對於沒有任何評論,我深表歉意。

    package jOptionPane;

    import javax.swing.JOptionPane;

    public class Main {

    public static void main(String[] args)
    {
        double paycheck = Double.parseDouble(JOptionPane.showInputDialog("How much was your paycheck?"));
        String[] options = new String[] {"Yes", "No"};
        int response = JOptionPane.showOptionDialog(null, "Are you married?", "Title",
            JOptionPane.DEFAULT_OPTION, JOptionPane.PLAIN_MESSAGE,
            null, options, options[0]);
        double deductions = Integer.parseInt(JOptionPane.showInputDialog("How many deductions did you claim?"));
        String[] payOften = new String[] {"Weekly", "Biweekly"};
        int variability = JOptionPane.showOptionDialog(null, "How often do you get paid?", "Title",
            JOptionPane.DEFAULT_OPTION, JOptionPane.PLAIN_MESSAGE,
            null, payOften, payOften[0]);
        double SS = 0;

        if (response == 0)
        {
            if (variability == 0)
            {
                 if(paycheck <= 490)
                 {
                     SS = (paycheck - (deductions*73.08)) * .1;
                 }

                 else if (paycheck <= 1515)
                 {
                     SS = (paycheck - (deductions*73.08)) * .15 + 33.4;
                 }
                 else
                 {
                     System.out.println("I am too lazy to compute");
                 }
            }
            else 
            {
                if(paycheck <= 981)
                {
                    SS = (paycheck - (deductions * 146.15)) * .1;
                }
                else if (paycheck <= 3031)
                {
                    SS = (paycheck - (deductions * 146.15)) * .15 + 66.9;
                }
                else 
                {
                    System.out.println("I am too lazy to compute");
                }
            }
        }
        else
        {
            if (variability == 0)
            {
                if(paycheck <= 209)
                {
                    SS = (paycheck - (deductions * 73.08)) * .1;
                }
                else if (paycheck <= 721)
                {
                    SS = (paycheck -(deductions * 73.08)) * .15 + 16.8;
                }
                else
                {
                    System.out.println("I am too lazy to compute.");
                }
            }
            else
            {
                if(paycheck <= 417)
                {
                    SS = (paycheck - (deductions * 146.15)) * .1;
                }
                else if (paycheck <= 1442)
                {
                    SS = (paycheck - (deductions * 146.15)) * .15 + 33.4;
                }
                else 
                {
                    System.out.println("I am too lzy to compute.");
                }
            }
        }
        System.out.println("You owe " + SS + " for Social Security");

    }

}

在實際系統中,所有這些金額,費率和閾值肯定都在數據庫表中,並且處理付款將僅是應用一個簡單的算術公式,其中涉及從適用行中獲取的值。 考慮按照這些思路重組整個事情。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM