Java - 在 while 循环和打印列表中递减变量

Java - decrement variable in while loop and print list

团队工资 = 600000 avgSalindivindiv = 20000

如果一个团队的预算是600000,每个人的平均工资是20000,一个团队可以雇佣多少人。

我想打印一个如下所示的列表:

0
1
2
3
...all the way to 30

这是我目前无法运行的代码:

int teamsalary = 600000;
int avgSalindivindiv = 20000;
int numofpeople = 0;
while(teamsalary >= 0) {
    System.out.println(numofpeople);
    teamsalary = teamsalary - (numofpeople * avgSalindiv);
    numofpeople++;
    break;
}

我看到你的逻辑中唯一明显的问题是下面一行:

teamsalary = teamsalary - (numofpeople * avgSalindiv);

在这里,你减去平均工资乘以 运行 总人数,这是没有意义的。相反,您想在循环的每次迭代中减去相同的平均值 avgSalindiv。请尝试改用此代码:

int teamsalary = 600000;
int avgSalindivindiv = 20000;
int numofpeople = 0;
while (teamsalary >= 0) {
    System.out.println(numofpeople);
    teamsalary -= avgSalindiv;
    ++numofpeople;
}

尝试像这样删除 break

int teamsalary = 600000;
int avgSalindivindiv = 20000;
int numofpeople = 0;
while (teamsalary >= 0) {
    System.out.println(numofpeople);
    teamsalary = teamsalary - (numofpeople * avgSalindivindiv);
    numofpeople++;
}

您不能使用 teamsalary = teamsalary - (numofpeople * avgSalindiv);,因为这会在第一次减去 0,第二次减去 20000,第三次减去 40000,等等。您只想每次减去 20000(对于每个添加的人).您还需要保持变量名称一致。 (您同时使用了 avgSalindivindivavgSalindiv

int teamsalary = 600000;
int avgSalindivindiv = 20000;
int numofpeople = 0;
System.out.println(numofpeople);

// subtracting avgSalindivindiv here prevents loop from running an extra time
while((teamsalary-=avgSalindivindiv) >= 0) {
    numofpeople++;
    System.out.println(numofpeople);
}

输出:

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30