JAVA - 循环奇怪的输出

时间:2015-10-15 01:11:52

标签: java

我的任务相对较长,所以我会尝试尽可能简短。我个人并不陌生,但是大学里的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组随机生成的动作?谢谢你们,如果有人能够以一种简单的方式表达它,那将是很好的,因为我不擅长编程。

2 个答案:

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