我被要求生成一个从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);
}
}
}
我得到的输出是:
我期望得到的输出是:
正确答案:
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("---");
}
}
}
}
答案 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);
}