レポート課題4 税額の計算

2008年現在の日本では、所得(給与から控除を差し引いた額)に応じて、所得税率が以下のように定まっている。

0円   - 195万以下   5%
195万 - 330万以下  10%
330万 - 695万以下  20%
695万 - 900万以下  23%
900万 - 1800万以下 33%
1800万超           40%

また、東京都内では、住民税は所得の10%(都民税4%、区市町村民税6%)となっている。

問題

キーボードから所得を万単位で入力し、所得税、住民税の額と、その合計を表示するプログラムを作成せよ。

ヒント

キーボードからの所得金額を入力するには以下のようにするとよい。

// System.in (キーボードの入力)を一行ずつ読むBufferedReaderを作成
BufferedReader keyboardInput = new BufferedReader(new InputStreamReader(System.in));

// ユーザーがEnterを押したとき、キーボードの入力を読み取る
String userInput = keyboardInput.readLine(); // userInputには改行文字は含まれない
double income = Double.parseDouble(userInput); // 文字列をdouble型の数字に変換する

場合分けをプログラムで記述する場合には、

if( 条件1 ) {
  // 条件1が真のとき

} else if ( 条件2 ) {
  // 条件2が真のとき

} else if ( 条件3 ) {
  // 条件3が真のとき

} else {
  // 条件1、2、3のどれも満たさないとき
}

というようにif文を連ねて書くとよい。

あるいは、

int[] lowerLimitOfIncome = {0, 195, 330, 695, 900, 1800};
double[] taxRatio        = {0.05,  0.10,  0.20,  0.23,  0.33,  0.40};

という配列を用意して、if文の繰り返しを避ける工夫もできる。

double currentTaxRatio = 0;

(中略)

if(lowerLimitOfIncome[i] < income && income <= lowerLimitOfIncome[i+1]) {
   currentTaxRatio = taxRatio[i];
}