quilt code
[Java] 참조타입 과제 본문
1.

int[] arr = {38, 94, 16, 3, 76, 94, 82, 47, 59, 8}; >> 우선 배열을 나열함
int max=0;
int min=arr[0]; >>max min선언 int min=0;이면 0이 모든 값보다 항상 작기 때문에 x. 배열 중 가장 큰 값보다 더 큰 값을 넣거나 arr[0](배열 중 첫번째) 입력
for (int i=0; i<arr.length; i++){ >>배열 길이만큼 i=0부터 하나씩 증가하는 것을 반복
if (max<arr[i]) {
max = arr[i] >>max값을 0과 arr[0]부터 비교해서 큰 값이 나올때마다 max값 교체
} if (min>arr[i]) {
min = arr[i] >>min값을 arr[0]의 값부터 비교해서 작은 값이 나올때마다 min값 교체
}

Random random = new Random(); >>랜덤 생성
int lotto[] = new int[6]; >>6개의 숫자 뽑기
for(int i=0; i<6; i++) { >> 6개의 숫자를 뽑는데
lotto[i] = random.nextInt(45)+1; >> 1부터 45까지의 숫자
for(int k=0; k<i; k++) { >> 중복되지 않는 숫자 뽑기 조건
if(lotto[i] == lotto[k]) { >> 중복되는 숫자가 나왔다면
i--; >> 중복 방지 : i++해서 자리 채우지 x
break; >> break에 걸리고 다시 for로 돌아가서 반복
}
}
print(lotto[i]+"")
다른방법) 45칸의 배열을 만들어서 숫자를 섞고 뽑기

**원리: int x=3; <-> int y=4;
3. 인공지능 컴퓨터와 게이머(사람)가 가위바위보 게임을 할 수 있도록 프로그램을 작성하시오.

new scanner >>스캐너 생성
String rspUser = scanner.nextLine(); >>유저가 입력하는 가위바위보
print("게이머: "+ rspUser);
new random >>랜덤 생성 (컴퓨터 난수 발생기)
int rspCom = random.nextInt(3); >>컴퓨터가 만들어내는 랜덤의 숫자 1,2,3(가위,바위,보)
String[] arr = { "가위", "바위", "보" }; >> 문자 배열 만들기
print("인공지능 컴퓨터: " + arr[rspCom]); >>랜덤으로 발생하는 숫자들을 배열로 출력
String result = " "; >> result값 선언
if(rspUser.equals(arr[rspCom])) { >> 유저와 컴퓨터가 같으면
result = "비김"; >>비김으로 출력
} else if (rspUser.equals("가위") && arr[rspCom].equals("바위") >>유저는 가위, 컴퓨터가 발생시킨 난수의 값이 바위이거나
|| rspUser.equals("바위") && arr[rspCom].equlas("보") >> 유저는 바위 컴퓨터는 보이거나
|| rspUser.equals("보") && arr[rspCom].equals("가위")) { >>유저는 보 컴퓨터는 가위이면
result = "게이머 승리";
} else { >>그 외는 모두 다음 result의 값
result = "컴퓨터 승리";
}
print ("결과: " + result);
4.

new Random >>난수 발생
int dice = random.nextInt(6) + 1;
int[] freq = new int[6];
print ("-----------")
print ("면 빈도")
print ("-----------")
for(int i=0; i<10000; i++) { >>주사위 만번 굴리기
dice = random.nextInt(6) + 1; >>
if(dice == 1) { >> 주사위 면이 1이 나오면
freq[0]++; >>freq배열 첫번째 자리에 1 증가
} else if(dice == 2) { >> 주사위 면이 2가 나오면
freq[1]++; >>freq배열 두번째 자리에 1증가
} else if(dice == 3) { >> 주사위 면이 3이 나오면
freq[2]++; >>freq배열 세번째 자리에 1증가
} else if(dice == 4) >> 주사위 면이 4가 나오면
freq[3]++; >>freq배열 네번째 자리에 1증가
} else if(dice == 5) { >> 주사위 면이 5가 나오면
freq[4]++; >>freq배열 다섯번째 자리에 1증가
} else if(dice == 6) { >> 주사위 면이 6이 나오면
freq[5]++; >>freq배열 여섯번째 자리에 1증가
'daily > Java' 카테고리의 다른 글
| [Java] 클래스 (2) (0) | 2023.01.03 |
|---|---|
| [Java] 클래스(1) (0) | 2023.01.02 |
| [Java] 열거 타입 (0) | 2022.12.30 |
| [Java] 조건문과 반복문 과제 (0) | 2022.12.29 |
| [Java] 참조타입-배열 (0) | 2022.12.29 |