목록프로그래밍 (15)
매일 매일 미라클 코딩

배열 선언 시, 데이터를 메모리에 연속되게 저장합니다. 그리고 나서 자료형의 크기 만큼 (index) 번 이동하여 데이터를 사용합니다. 따라서 배열의 이름은 참조변수와 같습니다. C언어의 포인터 역할과 비슷합니다. 따라서 배열을 사용할 때는 배열의 참조값을 제어하는지 밸류값을 제어하는지에 주의하여 사용해야합니다. 그 차이점을 크게 배열의 얕은복사와 깊은복사 개념을 통해 알 수 있습니다. 1. 얕은 복사 배열을 단순히 '=' 연산자를 통해 복사할 경우, 원본 배열이 가리키는 참조값을 복사하게 됩니다. 그래서 아래와 같이 선언된 두 배열은 메모리 상의 같은 곳을 가리키게 되죠. int[] arr1 = new int[]{1, 2, 3, 4}; int[] arr2 = arr1; 이때 복사한 배열2의 값을 바꾸게..

연관된 데이터가 너무 많다면 일일이 변수를 선언해주는 것도 번거로운 일일 것입니다 이럴 때 배열을 사용합니다. 선언은 int[] arr1; 초기화는 arr1= { 2, 4, 6, 8 }; 물론 여느 변수처럼 선언과 초기화를 함께 할 수 있습니다. int[] arr1 = new int[4]; 이와 같이 선언하면 4개 value를 가진 배열이 생깁니다. 각 value의 default 값은 0 입니다. int[] arr1 = new int[] {2, 4, 6, 8}; 이처럼 옆에 배열 값을 직접 입력하여 객체를 생성할 수도 있습니다. 참조변수처럼, arr1은 메모리 상에서 배열이 시작되는 주소값을 가집니다 이런 특성을 가진 배열을 이용해 46개의 정수중 6개를 뽑는 로또번호 추첨기를 만들어보겠습니다. 먼저, ..

자바 수업을 듣다가 배가 고파졌습니다 마침 if/else, switch/case/break 문을 배우고 있어 미리 골라놓은 서강대 근처 혼밥 맛집 리스트를 이용하여 응용해보기로 했습니다. switch문은 정수값을 받아 그에 해당하는 case 이하의 명령을 실행합니다. // Example int n=1; switch(n){ case 0: System.out.println('0'); case 1: System.out.println('1'); case 2: System.out.println('2'); } 이 경우 n의 값이 1이므로 case1, case2 가 실행됩니다. case 1만 실행하고 싶다면 case 1의 명령문 밑에 break; 를 삽입합니다. 변수당 한가지 명령만 실행하고 싶다면 break 문을 ..