나는 자바 코드의 간단한 비트를 반복하지 않고 임의의 순서로 1-6 개의 숫자로 추출하려고한다. 저는 1에서 6 사이의 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-동안 당신의 조건에 일치 할 때까지 루프 대신하는 경우의이 새로운 번호를 생성합니다. 그러나 실제로 배열을 사용하거나이를 설정해야합니다. –
배열 등을 사용할 수 없습니까? 반복되는 코드가 너무 많으면 문제를 단순화 할 수 있습니다. –
또한 (6-1) +1 == 6 – JSlain