[6-20] 다음과 같이 정의된 메서드를 작성하고 테스트하시오.
메서드명 : shuffle 기 능 주어진 배열에 담긴 값의 위치를 바꾸는 작업을 반복하여 뒤섞이게 한다
반환타입 : int[]
매개변수: int[] 매개변수 정수값이 담긴 배열
위치를 바꾸는 메서드를 만드는건 이제 아주 약간 껌이다.
package OOP_6;
import java.util.Random;
public class Exercise6_20 {
int temp;
int[] shuffle(int[] arr) {
for (int i = 0; i < arr.length; i++) {
int num= (int)(Math.random()*arr.length);
temp= arr[0]; //arr[0] 대신 arr[i]여도 똑같
arr[0]=arr[num];
arr[num]=temp;
}
return arr;
}
public static void main(String[] args) {
Exercise6_20 c = new Exercise6_20();
int[] original = {1,2,3,4,5,6,7,8,9};
System.out.println(java.util.Arrays.toString(original));
int[] result = c.shuffle(original);
System.out.println(java.util.Arrays.toString(result));
}
}
temp값에 값을 고정시켜놓는게 포인트
int num= (int)(Math.random()*arr.length)에서
int num= (int)Math.random()*arr.length 쓰면 랜덤값 출력안됨 괄호주의