【发布时间】:2014-09-10 01:05:09
【问题描述】:
我试图让一段简单的 java 代码以随机顺序吐出数字 1-6 而不重复。我已经设法让它在 1 到 6 之间吐出六个随机整数,但它只检查一个数字是否被使用过一次。代码如下:
import java.util.Random;
public class kirbyInt
{
public static void main(String[] args)
{
int num1, num2, num3, num4, num5, num6;
Random rand = new Random();
num1 = rand.nextInt((6-1) + 1) + 1;
System.out.println(num1);
num2 = rand.nextInt((6-1) + 1) + 1;
if (num2 == num1)
{
num2 = rand.nextInt((6-1) + 1) + 1;
System.out.println(num2);
}
else
{
System.out.println(num2);
}
num3 = rand.nextInt((6-1) + 1) + 1;
if (num3 == num1 || num3 == num2)
{
num3 = rand.nextInt((6-1) + 1) + 1;
System.out.println(num3);
}
else
{
System.out.println(num3);
}
num4 = rand.nextInt((6-1) + 1) + 1;
if (num4 == num1 || num4 == num2 || num4 == num3)
{
num4 = rand.nextInt((6-1) + 1) + 1;
System.out.println(num4);
}
else
{
System.out.println(num4);
}
num5 = rand.nextInt((6-1) + 1) + 1;
if (num5 == num1 || num5 == num2 || num5 == num3 || num5 == num4)
{
num5 = rand.nextInt((6-1) + 1) + 1;
System.out.println(num5);
}
else
{
System.out.println(num5);
}
num6 = rand.nextInt((6-1) + 1) + 1;
if (num6 == num1 || num6 == num2 || num6 == num3 || num6 == num4 || num6 == num5)
{
num6 = rand.nextInt((6-1) + 1) + 1;
System.out.println(num6);
}
else
{
System.out.println(num6);
}
}
}
【问题讨论】:
-
您可以使用 do-while 循环而不是 if 来生成一个新数字,直到它符合您的条件。但是,您确实需要考虑为此使用数组或集合。
-
不能用数组什么的吗?当你看到太多重复的代码时,你可能可以简化你的问题,就是这样。
-
可能duplicate.