繁体   English   中英

Java-While循环和打印列表中的减量变量

[英]Java - decrement variable in while loop and print list

球队总薪水= 600000平均Salindivindiv = 20000

如果预算为60万且平均个人工资为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); 因为这将第一次减去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

我在您的逻辑中看到的唯一明显问题是以下行:

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++;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM