Java 使用随机变量产生两个独立输出时遇到问题
我试图创建两个独立的10列10行数字输出。第一个输出使用数字4到7,第二个输出使用数字10到90(例如10、20、30等)。但是随机拨打这些号码,而不是按特殊顺序。下面是我的Java代码:Java 使用随机变量产生两个独立输出时遇到问题,java,random,Java,Random,我试图创建两个独立的10列10行数字输出。第一个输出使用数字4到7,第二个输出使用数字10到90(例如10、20、30等)。但是随机拨打这些号码,而不是按特殊顺序。下面是我的Java代码: import java.util.Random; public class LabRandom { private static final Random rand = new Random(); public static void main(String[] args) { int number
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();
while (i <= 100)
{
//number = rand.nextInt(4) + 4;
System.out.printf("%-5d", rand.nextInt(10 *(80) + 10));
if (i % 10 == 0)
{
System.out.println();
}
i++;
}
}
}
import java.util.Random;
公共类LabRandom
{
私有静态最终随机兰德=新随机();
公共静态void main(字符串[]args)
{
整数;
int i=1;
虽然(i您尚未重新初始化i
,但在第一个循环之后,它将已经等于101
,因此将不会进入第二个循环
正如在对您的问题的评论中所提到的,这里的for
循环更合适
另外,在第二个循环中,语句:
rand.nextInt(10 *(80) + 10)
它似乎不能满足您的需要。您可能需要以下内容:
rand.nextInt(9) * 10 + 10
您需要在第二个while循环之前重置i
while在第二个while循环之前设置i的值
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;//modified here
while (i <= 100)
{
//number = rand.nextInt(4) + 4;
System.out.printf("%-5d", rand.nextInt(10 *(80) + 10));
if (i % 10 == 0)
{
System.out.println();
}
i++;
}
}
}
import java.util.Random;
公共类LabRandom
{
私有静态最终随机兰德=新随机();
公共静态void main(字符串[]args)
{
整数;
int i=1;
while(我在第一个while循环后重置了i在连续的while
循环中使用变量会导致类似的错误。如果需要X次迭代,请使用for
循环。(顺便说一句,这将是开始使用调试器的好时机:在第二个循环上设置断点并检查i
的值会使事情立即变得明显!)(运行“更正”版本会立即显示这一点),您的第二个循环没有输出所需的数字-您需要使用整数除法,也就是乘法。