// 남궁 성의 자바의 정석 듣는 중//
- 랜덤 값은 배열 내의 인덱스에 저장된 값을 서로 바꾸는 것...
- ..쟈스에서 배열의 길이로 랜덤 값을 할때는 중복이랑 소수점도 나와서 따로 정수값만 나오게 따로 코드를 추가해주는 건데..
이건 왜 이러는 건지 모르겠음..?
int[] numArr = {0,1,2,3,4,4,5,6,7,8,9};
System.out.println(Arrays.toString(numArr));
for (int i=0; i < numArr.length; i++ ) {
int n = (int)(Math.random() * 10); // 0~9
int tmp = numArr[i]; //0대신 i로 바꿔주면 더 잘 섞임. 0은 첫번째 값을 계속 바꾸는 거니깐.
numArr[i] = numArr[n];
numArr[n] = tmp;
}
System.out.println(Arrays.toString(numArr));
// 다른 예제
//index : 0-45-1, 0~44
int[] ball = new int[45]; // 45개 정수값 저장.
// 배열 각 요소에 1~45값 저장.
for(int i=0; i < ball.length; i++)
ball[i] = i+1; // ball[0]에 1 저장.
int tmp = 0; // 두 값 바꾸는 데 사용하는 임시변수.
int j = 0; // 임의의 값을 얻어서 저장할 변수.
// 배열의 i번째 요소와 임의의 요소에 저장된 값 설로 바꿔서 값을.
// 0번째에서 5번째 꺼까지 모두 6개만 변경.
for(int i=0; i < 6; i++) {
j = (int)(Math.random() * 45); // 0~44범위를 임의로.
tmp = ball[i];
ball[i] = ball[j];
ball[j] = tmp;
System.out.println(Arrays.toString(ball));
}
// 배열 ball 앞에서 부터 6개 요소 출력.
for(int i=0; i < 6; i++)
System.out.printf("ball[%d]=%d%n", i, ball[i]);
}
//[45, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 1]
//[45, 25, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 1]
//[45, 25, 7, 4, 5, 6, 3, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 1]
//[45, 25, 7, 12, 5, 6, 3, 8, 9, 10, 11, 4, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 1]
//[45, 25, 7, 12, 34, 6, 3, 8, 9, 10, 11, 4, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2, 26, 27, 28, 29, 30, 31, 32, 33, 5, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 1]
//[45, 25, 7, 12, 34, 2, 3, 8, 9, 10, 11, 4, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 6, 26, 27, 28, 29, 30, 31, 32, 33, 5, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 1]
//ball[0]=45
//ball[1]=25
//ball[2]=7
//ball[3]=12
//ball[4]=34
//ball[5]=2
- 로또 번호 뽑을 때 앞에 6개만 랜덤으로 돌려도 충분히 섞인다는 건데... 씁..
- 다른 코드와 차이가 뭐지? int로 한정지어져서 그런건가? ㅇㅇ 형변환해서 그럼
- string은 참조형이라서 기본값은 null
- 원래는 생성될 때 값이 들어가는 것이 아니라, 주소 값이 들어가는 데 이해하기 좋게 편의상 저렇게 적은 것.
//index: 0-2
String[] strArr = { "가위", "바위", "보"};
System.out.println(Arrays.toString(strArr));
for(int i=0;i<10;i++) {
int tmp = (int)(Math.random()*3);
System.out.println(strArr[tmp]);
//어차피 인덱스 값이 출력되니깐,
//strArr[tmp] 배열만 추가해주면 출력값이 숫자가 아니라 가위, 바위 보로 나옮
//걍 인덱스 값만 나오게 하려면 귣이 tmp로 변수 안 빼고 걍 (int)(Math.random()*3)출력하면 됨.
}
//[가위, 바위, 보]
//바위
//가위
//바위 //이렇게 10번
- 이렇게 하니깐 이해가 됨.. ㅎ
-... scanner말고 커맨드 라인으로 할 수 있다는 거 같은데.. 터미널에서 입력하는 것 같은 건가?
=> 하여간 이렇게 하면 코드는 망가뜨리지 않고(매번 업데이트 하지 않고) 돌릴 수 있어서 이렇게 하는 듯
class Ex5_7 {
public static void main(String[] args) {
System.out.println("매개변수의 개수:"+args.length);
for(int i=0;i< args.length;i++) {
System.out.println("args[" + i + "] = \""+ args[i] + "\"");
}
//이클립스의 run configuration에서 variable에 변수 값을 넣어도 됨.
//예. abc 123 "Hello world"
}
}
//매개변수의 개수:3
//args[0] = "abc"
//args[1] = "123"
//args[2] = "Hello world"
맥 때문에... 매번 고생하는.. 나.
https://blog.naver.com/jdub7138/220934381209
파일 명을 누르고 opt+enter --> resource에서 위치확인 가능 --> 해당 폴더 열고.. 상위 폴더로 안 가지니깐 --> 아이템 정렬을 계층으로 바꿈 --> 그렇게 bin 폴더로 넘어가서 --> 경로가 안보이니깐 --> 우클릭 정보가져오기 해서 --> cd 터미널에 복붙 --> 우린.. dir 아님 ls 임...
bin에서 매개 변수는 확인이 되고 적용도 되는데,, 코드를 보려고 ㅏ니깐.. src에서 안 먹힘..
나도 이유를 모르겠음.. 검색해도 모르겠음.
일단 유뷰트 댓글로 질문은 했으나.. 글쎄.. 모른다고 하실듯
내 계정-MacBookAir bin % ls
Ex5_1.class Ex5_2.class Ex5_6.class
Ex5_10.class Ex5_3.class Ex5_7.class
Ex5_1_temp2.class Ex5_4.class Ex5_8.class
Ex5_1_tmp.class Ex5_5.class Ex5_9.class
asus@Dayeongui-MacBookAir bin % Ex5_7
zsh: command not found: Ex5_7
내 계정-MacBookAir bin % java Ex5_7
매개변수의 개수:0
내 계정-MacBookAir bin % java Ex5_7 abc 123 "Hello world"
매개변수의 개수:3
args[0] = "abc"
args[1] = "123"
args[2] = "Hello world"
내 계정-MacBookAir bin % cd ..
내 계정-MacBookAir ch05 % ls
bin src
내 계정-MacBookAir ch05 % cd src
내 계정-MacBookAir src % ls
Ex5_1.java Ex5_2.java Ex5_6.java
Ex5_10.java Ex5_3.java Ex5_7.java
Ex5_1_temp2.java Ex5_4.java Ex5_8.java
Ex5_1_tmp.java Ex5_5.java Ex5_9.java
내 계정-MacBookAir src % type Ex5_7.java
Ex5_7.java not found
//이유를 몰라..
'Web Developing > Java' 카테고리의 다른 글
[Java] 객체지향 언어 (0) | 2024.04.13 |
---|---|
[java] 배열 3 (0) | 2024.04.13 |
[Java] 배열 (0) | 2024.04.02 |
[Java] 조건문과 반복문: if, if else if, switch문 // for, while, do-while문 (1) | 2024.03.29 |
[java] 비교연산자 (0) | 2024.03.20 |