나는 학기에 대한 마지막 평가를하고 흥미롭게도 내가 작성한 코드는 방금 다림질 한 몇 가지 간단한 것 이외의 오류가없는 것으로 보인다. 그러나, 나는 내 머리를 얻을 수없는 마지막 오류가 하나 붙어있다.while 루프 while 루프의 시작으로 돌아 가기?
내가하고있는 프로그램은 숫자를 생성하고 배열에 저장하는 while 루프를 사용하는 난수 생성기입니다. 그러나 두 번째 while 루프는 해당 숫자가 이미 있는지 확인하는 데 사용됩니다 배열이 해당 배열에 이미 있으면이 숫자를 버리고 같은 인덱스에 넣으려면 다른 값을 가져와야합니다. 이 후 배열이 첫 번째 루프의 끝으로 명령을 계속 사용에, 그러나 5 배 (10)의 격자로 인쇄, 그것은 오류와 함께 제공 :
은 분명 보인다Random50.java:52: error: continue outside of loop
continue;
^
만큼, I 프로그램을 실행하기 위해 내 코드를 변경하는 방법을 모르는 경우 continue 명령을 사용하여 카운터 변수를 증가시키지 않고 첫 번째 루프의 시작으로 돌아가므로 다른 값을 동일한 인덱스에 다시 저장할 수 있습니다.
import java.util.Random;
import java.util.Arrays;
public class Random50
{
public static void main(String[] args)
{
// Declare and initalise array
int[] random50 = new int[5];
// Declare and initalise counter variable
int i = 0;
// Declare and initalise repeater variable
int r = 0;
// Generator while loop
while (i < random50.length)
{
// Generate random number
int n = (int) (Math.random() * 999) + 1;
// Initalise variables for second while loop
int searchValue = i;
int position = 0;
boolean found = false;
// Duplicate while loop
while (position < random50.length && !found)
{
if (random50[position] == searchValue)
{
found = true;
}
else
{
position++;
}
}
// Return to first loop, determine if duplicate to return to the start of the loop early
if (found);
{
continue;
}
// Store value into array
random50[i] = n;
// Print value and add to counter variable
System.out.print(random50[i] + " ");
r++;
// reset counter variable to maintain grid
if (r == 5)
{
System.out.println("");
r = 0;
}
i++;
}
}
} 그래서
, 내가 어떻게이 일을하거나 즉, 첫 번째 루프 중간 루프의 시작으로 돌아가 계속받을 수 있나요?
더 이상 오류가 계속되지 않습니다. 배열에 값을 저장할 때 컴파일 오류가 발생합니다. 즉, random50 [i] = n; 값이 도달 할 수 없습니다 – SIHB007
@ SIHB007 다시 같은 문제가 발생합니다. 제 편집을 참조하십시오. – Mario