生成以x

时间:2019-04-28 13:55:20

标签: java random numbers

我被要求生成一个从1到100的随机数列表。然后我被要求在每个可以被7整除的随机数上打印一条消息,也可以。

我的问题是,此列表必须以数字1开头,然后必须以随机数字继续。另外,我想每五行打印一次特定的文本。

问题:

1)我如何以数字1开头列表,而其余部分仍保持随机状态?

2)如何每五行打印一条消息?

我一直在搜索2个小时,仅发现python和其他语言的结果。我找不到正确的答案。

import java.util.Random;

public class rannumb 
{       
    public static void main(String[] args) {

        Random rnd = new Random();
        int number;

        for(int i = 1; i<=100; i++) {
            if (i%7==0) {
                System.out.println(i+ " : Lucky number!");
            }

            number = rnd.nextInt(100);
            System.out.println(number); 

        }
    }
}

我得到的输出是:

  • 3、69、75、83、96、47、7:幸运数字!,56、30、98、6、66、97、63、14:幸运数字!

我期望得到的输出是:

  • 1、3、69、75、83:消息,96、47、7:幸运数字!,56、30:消息,98、6、66、97、63、14:幸运数字!

正确答案:

public static void main(String[] args) {

        Random rnd = new Random();
        int number;

        for(int i = 1; i<=100; i++) {

            if (i==1) {
                System.out.println(1);
                continue;
            }

            number = rnd.nextInt(100);
            //I used i instead of number first, thats why I had an issue
            if (number%7==0) {
                System.out.println(number+ " : Lucky number!");
            }

            else{
            System.out.println(number); 

        }
            // now I use i as you showed so that i can get the position of the number and not the number itself         
            if (i%5==0) {
                System.out.println("---");
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

您可以从2而不是1开始循环索引,并在for循环之前打印数字1。像这样:

Random rnd = new Random();
int number;

// print out 1 as you need it to be the first number
System.out.println(1);

// observe here that we start i at 2
for (int i = 2; i <= 100; i++) {
    if (i % 7 == 0) {
        System.out.println(i + " : Lucky number!");
    }

    if (i % 5 == 0) {
        // Do something else here...
    }
    number = rnd.nextInt(100);
    System.out.println(number);
}