【发布时间】:2014-11-16 17:54:16
【问题描述】:
大家好,我正在处理的这个项目需要帮助,我想限制我使用 for 循环和 do/while 循环的内容。我已经为此工作了一段时间,但我仍然对自己在做什么感到困惑。这是我目前所拥有的。
public class Array2
{
public static void main(String[] args)
{
int[] array1= new int[10];
int x=0;
int num=0;
do
{
for(int i=0; i<array1.length; i++)
{
int j= 2 + (int)(Math.random() * (99-1));
if(i==0)
{
array1[i]=j;
}
else
{
if(j==array1[i-1])
{
x++;
}
else
array1[i]=j;
}
System.out.println(array1[i]);
num++;
}
}while(x==0&&num<array1.length);
}
我知道这段代码不起作用,我正在寻找一种解决方案,以便当 x 设置为 1 时,它只是将 j 设置为一个不同的随机数,并再次检查它是否是重复数。我也想知道如何检查 j 的重复数字而不是 if(j==array1[i-1] 因为那只检查前一个数组槽。请帮忙!
编辑: 我现在的主要问题是如何检查 j 是否等于 array1 中的任何数字,现在我有 if(j==array1[i-1]) 但它只检查前一个插槽。谢谢
【问题讨论】:
-
我忘了补充一点,我正在尝试制作一个 1-100 的 10 数字非重复数组。
-
执行此操作的正常方法是将值 1 到 100 并取前 10。即第一个是做一些完全不同的事情。你的随机数会做 2 - 100。
-
@Tom
nextInt()不是Math方法,它在Random类上,它是一个实例方法 -
@Tom: 99-1 是 98,而不是 100?为什么要 +1?
-
@drewmoore 对,我忽略了
Math:(.
标签: java for-loop random while-loop