for (i = 0; i<6; i++)
{
lotto[i] = rand() % 45 + 1 ;
for (j = 0; j < i; j++)
{
if (lotto[i] == lotto[j]) // 이부분;;
{
i--; // ?
break;
}
}
}
로또 코딩 일부분입니다..
만약 i=0 일때 5,
i=1 일때 21,
i=2 일때 5 나오면 어떻게되나요? (코딩해보면 중복숫자 안나옴)
------------
i-- 해도 lotto[1]과 lotto[2]를 비교하지
lotto[0]일때와 lotto[2]일때는 서로비교 못하지않나요?
늒네라 이해가안대영;
i번째에서 나온 숫자가 다른 숫자와 중복되는지 j가 확인해보고
중복이 있을 경우 i --로 현재 난수 등록을 무효화시키면서 break로 j 기준 루프를 빠져나오는거 같네여
현재 i가 2인데 중복이면 i를 1로 내리고 내부 반복 종료 -> 내부반복이 종료되면 외부의 반복도 1회의 반복이 끝나므로 i가 다시 2로 증가해서 2에 다른 랜덤값을 넣음
i = 0일때와 i = 2일때 같은값인데 어떻게 루프되는지 이해가안대욤;; lotto[1]가 21, lotto[2]가 5.. 중복이 아닌데 그냥 실행되지않나요? lotto[2]는 lotto[0]과 중복인데요..
이중 루프잖아요 - dc App
j가 0부터 i-1까지 다 방문해서 같은지 확인하는 - dc App