我的任务相对较长,所以我会尝试尽可能简短。我个人并不陌生,但是大学里的Comp Sci课程确实让我参与其中。因此,在我们任务的一部分中,我们假设打印出一个随机生成的动作列表,该动作列表将等于5或6个点。从1-22生成数字得到两分,23-38得到1分。所以我想这样做十次。这是我的代码。
import java.util.Scanner;
import java.util.Random;
public class Skydive {
static Scanner input = new Scanner(System.in);
static int score = 0;
static int round = 0;
static int maneuvers;
static Random randomGenerator = new Random();
static int randomFormations;
static int blockFormations;
public static void main(String[] args) {
// TODO Auto-generated method stub
while (round <= 10)
{
while (score <= 5)
{
maneuvers = randomGenerator.nextInt(38) + 1;
if (maneuvers <= 22)
{
score += 2;
}
if (maneuvers >= 23)
{
score++;
}
System.out.println("Maneuvers done in round: " + maneuvers + " ");
}
round++;
}
}
}
Theres会更多地关注代码然后就是这样,但是两个while循环是我遇到问题的。
所以一轮假设是当while循环得分等于随机生成的机动中的5或6点时,所以当该循环完成时,完成一轮,然后假设再次循环并开始下一轮。我想这次打印到控制台10次。但是,当我尝试执行此操作时,控制台会打印一组随机生成的操作,然后突然消失并替换为全新的设置;它再次消失,但是第三次机动停留在控制台屏幕上并且程序被终止&#34;。任何人都能帮助我,以便控制台在屏幕上有10组随机生成的动作?谢谢你们,如果有人能够以一种简单的方式表达它,那将是很好的,因为我不擅长编程。
答案 0 :(得分:0)
您需要在每个score
之后重置round
。像,
while (round < 10) // <-- 0,1,2,3,4,5,6,7,8,9 is 10 values.
{
score = 0; // <-- or it won't be zero again.
while (score <= 5)
{
答案 1 :(得分:0)
总结代码中所需的所有更改 -
import java.util.Scanner;
import java.util.Random;
public class Skydive {
static Scanner input = new Scanner(System.in);
static int score = 0;
static int round = 0;
static int maneuvers;
static Random randomGenerator = new Random();
static int randomFormations;
static int blockFormations;
public static void main(String[] args) {
while (round < 10)
{
score = 0;
do
{
maneuvers = randomGenerator.nextInt(38) + 1;
if (maneuvers <= 22)
{
score += 2;
}
else
{
score++;
}
System.out.println("Maneuvers done in round: " + maneuvers + " ");
} while (score < 5);
round++;
}
}
}