レポート課題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];
}

