반응형
□ 배열 실습하기
* 문제
- 친구들의 숫자만큼 복불복 게임을 만들어봅니다.
* 게임로직 -> 게임에 필요한 데이터 -> Pseudo code
---
import java.util.Arrays;
import java.util.Scanner;
public static void main(String[] args) {
// 친구들의 숫자 중에서 한 명이 당첨되게 하는 것
// 친구들은 각자 카드 하나를 갖고 있다고 생각
// 루프
// 필요한 데이터 : 카드
Scanner scanner = new Scanner(System.in);
// 몇 명이서 게임을 하실 건가요?
System.out.println("몇 명??");
// 입력받아서 몇 장의 카드로 만들기?
int cardNum = scanner.nextInt();
int[] cards = new int[cardNum];
// 당첨자 선정 : 0, 1, 2, 3, 4
int target = (int)(Math.random()*cards.length);
cards[target] = 1;
System.out.println("debug " + Arrays.toString(cards));
for (i=0; i < cards.length; i++;) {
// 엔터를 누를 때마다 하나씩 넘어감
scanner.nextLine();
System.out.println(cards[i]);
if(cards[i]==1) {
System.out.println("당첨!");
break;
}
}
}
---
---
import java.util.Scanner;
import java.util.Arrays;
public class HelloWorld{
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("How many people?");
int cardNum = scanner.nextInt();
int[] cards = new int[cardNum];
int target = (int)(Math.random()*cards.length);
cards[target] = 1;
System.out.println("debug " + Arrays.toString(cards));
for (int i=0; i < cards.length; i++) {
System.out.println(cards[i]);
if(cards[i]==1) {
System.out.println("Nice");
break;
}
}
}
}
---
□ 배열 관련 API
* 배열 관련 API
- docs.oracle.com/javase/7/docs/api/java/util/Arrays.html
- Arrays 클래스 : sort()
- Math.random() 과 배열의 크기
- System.arraycopy()
* sort() 기능
---
import java.util.Arrays;
public class Sort {
public static void main(String[] args) {
int[] arr = { 10, 9 , 8, 7, 6 };
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
}
}
---
=> [ 6, 7, 8, 9, 10 ], sort 함수는 배열을 정렬시키는 기능
* 배열 확장
- System.arraycopy(array1, 0, array2, 0, array1.length);
- 배열 array1 위치 0부터 요소 array1.length개를 배열 array2 위치 0부터 요소 array1.length개를 복사
---
import java.util.Arrays;
public class ExtendArray {
public static void main(String[] args) {
//arr1 에는 리모컨(포인터, 레퍼런스)가 들어감
int[] arr1 = { 1, 2, 3 };
int[] arr2 = new int[5];
//arr2에 있는 레퍼런스를 복사해서 arr1에 담음
arr1 = arr2;
System.out.println(Arrays.toString(arr1));
}
}
---
=> [0, 0, 0, 0, 0]
---
//arr1에 있는 값을 arr2로 복사
arr2[0] = arr1[0];
arr2[1] = arr1[1];
arr2[2] = arr1[2];
//arr2에 있는 레퍼런스를 복사해서 arr1에 담음
arr1 = arr2;
System.out.println(Arrays.toString(arr1));
---
=> [ 1, 2, 3, 0, 0]
---
System.arraycopy(arr1, 0, arr2, 0, arr1.length);
System.out.println(Arrays.toString(arr2));
---
=> [ 1, 2, 3, 0, 0 ]
반응형
'학습 > IT' 카테고리의 다른 글
스마트폰에 사용되는 통신기술 알아보기 - LTE, LTE-A, 블루투스 (0) | 2022.07.29 |
---|---|
[IT] Java기초(9) - 자바에서 배열(Array) 실습하기 (0) | 2021.12.22 |
[IT] Java기초(8) - 자바에서의 배열(Array) 사용법 (0) | 2021.12.07 |
[IT] Java기초(7) - 함수(Function), 계산기 예제 코딩해보기 (0) | 2021.12.02 |
[IT] Java기초(6) - 함수(Function), 주사위 함수 정의하기 (0) | 2021.11.23 |
댓글