簡體   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