薪水柜台的最终工资不会增加?

时间:2017-10-02 01:15:26

标签: java loops while-loop increment variable-declaration

所以我在这个实验室提示中写了一个薪水计算器:

编写一个显示教师薪资计划的程序。输入是起始工资,增加百分比和计划中的年数。输出的时间表中的每一行应包含该年份的年份数和工资。

import java.util.Scanner;

public class Lab2_10
{

   public static void main (String[] args)
   {
   // Get values
   Scanner scanner = new Scanner(System.in);
   System.out.print("Enter the base first year salary: ");
   int first = scanner.nextInt(); 
   System.out.println("Enter the percentage increase: ");
   int percent = scanner.nextInt();
   System.out.println("Enter the number of years in the schedule: ");
   int years = scanner.nextInt();

   // Calculate salary for each year
   int total = first;
   int i = 1;
   int increment = percent / total * 100;
   while (i <= years && years <= 25)
   {
      increment = percent / total * 100;
      total += increment;
      System.out.println(total + " " + i);
      i++;
   }

   }
}

这就是我到目前为止所拥有的。但是,增量线似乎不起作用。当我输入40,000作为基本工资,并在20年内增加5%时,它会返回。

40000 1
40000 2
40000 3
40000 4
40000 5
40000 6
40000 7
40000 8
40000 9
40000 10
40000 11
40000 12
40000 13
40000 14
40000 15
40000 16
40000 17
40000 18
40000 19
40000 20

我知道这一年正在增加,但工资保持不变。我想知道循环或声明是否存在问题?我真的不知道如何解决它。

1 个答案:

答案 0 :(得分:1)

您的%计算逻辑不正确

int increment = percent / total * 100;

将其更改为

int increment = total * percent / 100.0; // note 100.0

这里有两件事。

  1. Simple math
  2. Integer division