我试图创建10列和10行数字的两个独立输出。我知道我可以使用数字4到7进行第一次输出,使用数字10到90进行第二次输出。但是我在使用数字901到999进行第三次输出时遇到了麻烦。下面是我的Java代码:
import java.util.Random;
public class LabRandom
{
private static final Random rand = new Random();
public static void main(String[] args)
{
int number;
int i = 1;
while (i <= 100)
{
//number = rand.nextInt(4) + 4;
System.out.printf("%-5d", rand.nextInt(4) + 4);
if (i % 10 == 0)
{
System.out.println();
}
i++;
}
System.out.println();
i = 1;
while (i <= 100)
{
//number = rand.nextInt(4) + 4;
System.out.printf("%-5d", rand.nextInt(9)*10+10);
if (i % 10 == 0)
{
System.out.println();
}
i++;
}
System.out.println();
i = 1;
while (i <= 100)
{
//number = rand.nextInt(4) + 4;
System.out.printf("%-5d", rand.nextInt(100)*10);
if (i % 10 == 0)
{
System.out.println();
}
i++;
}
}
}
答案 0 :(得分:1)
我无法理解你想要的东西。如果要在900到999范围内创建100个随机选择数字的输出,并且每10个这样的数字后面有换行符,请尝试将此循环添加到代码中:
i = 1;
while (i <= 100)
{
// generate a random number from 0 to 100-1,
// then add 900 to transform the range to 900 to 999
System.out.printf("%-5d", rand.nextInt(100) + 900);
if (i % 10 == 0)
{
System.out.println();
}
i++;
}
答案 1 :(得分:0)
顺便说一句,如果你真的想要打印10到90的数字,那么你的第二个循环是不正确的。 现在你打印10的倍数,从10到90,例如10,20,30 ..... 90
对于每个数字之间,你会想要: rand.nextInt(80)10
答案 2 :(得分:0)
// difference between the highest and the lowest value you want to have in your result
int range = 99;
// the lowest possible value you want to see in your result
int lowestValue = 901;
//note that you will never get the numbers 900 and 1000 this way, only between
int result = rand.nextInt(range) + lowestValue;
您可能想要了解nextInt(value)究竟是做什么的(在适当的IDE中很容易做到,因为它将提供JavaDoc工具提示,当然可以在这样的通用Java类中详细介绍)。