2017-02-23 1 views
0

내 과제는 정말 간단합니다. 소득이 9000 세 미만인 경우 10 %, 그 이상인 경우 15 % 등이됩니다.배열을 사용하여 숫자의 범위를 계산하는 방법은 무엇입니까?

그러나 다음 중 하나는 "소득 범위를 각각의 방법을 선택하고 세금 기록표에서 특정 세금을 계산할 배열 레코드를 선택하십시오. "

어떻게 작동합니까? 배열은 값의 범위가 아닌 특정 값만 가져 옵니까 ??

이 지금까지

public static int calcTax(int status, int income) 
{ 
     if (status == 0) 
     { 
     return singleFiling(income); 
     } 
     if (status == 1) 
     { 
     return jointFiling(income); 
     } 
     if (status == 2) 
     { 
     return headFiling(income); 
     } 
     else 
      System.out.println("Error: invalid status. Enter a number between 0 to 2 only."); 
    return income; 

     } 

static int ninek = 9075; 
static int thrirtysixk = 36900; 
static int eightyninek = 89350; 
static int oneeightysixk = 186350; 
static int fourofivek = 405100; 
static int fourosixk = 406750; 
static int eighteenk = 18150; 
static int seventythreek = 73800; 
static int onefortyeightk = 148850; 
static int twotwentysixk = 226850; 
static int fourfivesevenk = 457600; 
static int twelveninefifty = 12950; 
static int fourninek = 49400; 
static int onetwentysevenk = 127550; 
static int twoosixk = 206600; 
static int fpurthreetwok = 432200; 

static double tax = 0; 
static int singleFiling(double userIncome) 
{ 
    if (userIncome >= 1 && userIncome <= ninek) 
     tax = userIncome * 0.10;  

System.out.println("Your payable Federal tax is: " + tax); 

return 0; 
} 
static int jointFiling(double userIncome) 
    { 
     if (userIncome >= 1 && userIncome <= oneeightysixk) 
      tax = userIncome * 0.10;  

    System.out.println("Your payable Federal tax is: " + tax); 

    return 0; 
    } 
    static int headFiling(double userIncome) 
    { 
     if (userIncome >= 1 && userIncome <= twelveninefifty) 
      tax = userIncome * 0.10;  

    System.out.println("Your payable Federal tax is: " + tax); 

    return 0; 
    } 
} 
+2

소득에 대해 하나의 배열과 세율에 대해 두 개의 배열을 갖는 것으로 고려하면 해당 소득 배열의 인덱스는 세율에 대한 인덱스와 일치합니다. 수입은 [0] == 9000 taxrate [0] == 12.5 –

+0

당신은'배열'을 가져 와서'배열 인덱스 '에 관한'세금 '을 계산하고'배열 인덱스'에'세금 '을 저장할 수 있습니다. 코드는 –

+0

입니다. if (userIncome> = 1 && userIncome <= 수입 [0]) 세금 = userIncome * taxrate [0]; 그게 가능할까요? –

답변

0

계정에 주석을 촬영 내 코드, 코드는 다음과 같이 수 :

물론
static int[] incomeLevel = new int[]{9075, 186350, 12950}; 
static double[] taxRate = new double[]{.1, .15, .2} 

static double tax = 0.0; 

public static int calcTax(int status, int income) { 
    if (status < 0 || status > 2) { 
     System.out.println("Error: invalid status. Enter a number between 0 to 2 only.") 
     return income; 
    } 
    if (income > 0 && income <= incomeLevel[status]) 
     tax = income * taxRate[status]; 
    System.out.println("Your payable Federal tax is: " + tax) 
    return 0; 
} 

다른 값을 소득 수준에 추가되었습니다에 있습니다 , 세율과 동일합니다.

status을 선택하여 다른 값을 계산하는 대신 상태를 배열 인덱스로 사용할 수 있습니다. 이는 코드가 3 회 대신 1 회만 필요하지만 다른 값은 필요하다는 이점이 있습니다.

이제 상태가 원하는 범위에 있는지 확인하면됩니다.

관련 문제