java - 在循环的每次迭代中分离结果
问题描述
我有一个任务是模拟一个篮球罚球手在 5 场比赛中每场 10 次投篮的命中率。在大多数情况下,代码按照我想要的方式工作,但是对于每场比赛,我需要打印出in
10 次的投篮次数。我无法弄清楚如何保持这个结果特定于相关性,game
而不是增加in
所有游戏的数量. 接下来的每个游戏都在添加它的in
金额添加到前一场比赛的金额中。
in
然后我还需要帮助,根据每场比赛的投篮次数来判断最好和最差的得分。我相信这两个问题可以通过相同的行动来解决,我只是很难找到需要采取的行动。
import java.util.*;
public class Final2 {
public static void main(String[] args){
double in;
int out;
int count;
int games;
int tries;
double average;
int total;
Scanner scan = new Scanner(System.in);
System.out.print("Enter Player's Free Throw Percentage: ");
int input = scan.nextInt();
count = 0;
in = 0;
average = 0;
total = 0;
games = 1;
do{
System.out.println("\nGame " + games + ":");
games++;
for (tries = 0; tries < 10; tries++){
int shot = (int)(Math.random()*100);
count++;
if (shot < input){
in++;
System.out.print("IN ");
}
else{
System.out.print("OUT ");
}
}
System.out.println("\nFree Throws Made: " + String.format("%.0f", in) + " Out Of 10. ");
}
while (games <= 5);{
}
average = (in / count)*100;
System.out.println("\nSummary:");
System.out.println("Best Game Free Throws Made: " + "...");
System.out.println("Worst Game Free Throws Made: " + "...");
System.out.println("Total Free Throws Made: " + String.format("%.0f", in) + " Out Of " + count);
System.out.println("Average Free Throw Percentage: " + String.format("%.0f", average) + "%");
System.out.println("\nEND OF SIMULATION!");
}
}
输出:
Enter Player's Free Throw Percentage: 50
Game 1:
IN IN IN IN IN IN IN OUT OUT OUT
Free Throws Made: 7 Out Of 10.
Game 2:
OUT IN OUT OUT OUT IN OUT IN IN IN
Free Throws Made: 12 Out Of 10.
Game 3:
IN OUT IN IN IN OUT OUT OUT OUT OUT
Free Throws Made: 16 Out Of 10.
Game 4:
IN OUT OUT OUT IN OUT OUT OUT IN IN
Free Throws Made: 20 Out Of 10.
Game 5:
OUT OUT IN OUT OUT OUT IN IN IN IN
Free Throws Made: 25 Out Of 10.
Summary:
Best Game Free Throws Made: ...
Worst Game Free Throws Made: ...
Total Free Throws Made: 25 Out Of 50
Average Free Throw Percentage: 50%
END OF SIMULATION!
解决方案
您必须在此之前重置in
变量。如果要跟踪 in 的总数,则必须使用新变量(例如total_in
)。
import java.util.*;
public class Final2 {
public static void main(String[] args){
int in = 0;
double total_in = 0;
int out;
int count = 0;
int games = 1;
int tries;
double average = 0;
int total = 0;
Scanner scan = new Scanner(System.in);
System.out.print("Enter Player's Free Throw Percentage: ");
int input = scan.nextInt();
do{
System.out.println("\nGame " + games + ":");
games++;
for (tries = 0; tries < 10; tries++){
int shot = (int)(Math.random()*100);
count++;
if (shot < input){
in++;
System.out.print("IN ");
}
else{
System.out.print("OUT ");
}
}
System.out.println("\nFree Throws Made: " + String.format("%.0f", in) + " Out Of 10. ");
total_in += in;
in = 0;
}
while (games <= 5);{
}
average = (total_in / count)*100;
System.out.println("\nSummary:");
System.out.println("Best Game Free Throws Made: " + "...");
System.out.println("Worst Game Free Throws Made: " + "...");
System.out.println("Total Free Throws Made: " + String.format("%.0f", total_in) + " Out Of " + count);
System.out.println("Average Free Throw Percentage: " + String.format("%.0f", average) + "%");
System.out.println("\nEND OF SIMULATION!");
}
}
推荐阅读
- php - PHP 使用 XML Expat 解析器
- javascript - JS that allows me to set weather type
- python - QScrollArea 和 QPainter 可能出现的渲染问题
- django - 变量未在模板标签中显示值
- java - com.sun.mail.smtp.SMTPSendFailedException: 550 5.2.125 发件人已超过允许发送的最大邮件数
- javascript - 无法使用 ES 6 模块导入语句使用 css-loader
- c++ - 使用 SIR 模型的疾病爆发模拟
- vuejs2 - 何时创建组件?- Vue.js
- visual-studio-code - 为什么在 vscode 的扩展内部未定义 stream.pipeline?
- python - 如何断言根据条件过滤的熊猫数据框为真