분류 전체보기 250

메소드에서 배열 리턴

메소드에서 배열 리턴 메소드에서 배열을 리턴할 수 있다. 이 경우 실제 배열에 대한 레퍼런스가 리턴된다. 메소드가 반환하는 배열의 타입과 배열의 차원은 리턴받는 배열 레퍼런스 변수의 타입과 배열의 차원에 일치하여야 한다. 그리고 메소드에서 리턴하는 배열의 크기는 매번 다를 수가 있으므로 메소드 선언 시 배열의 크기는 정하지 않는다. 다음은 예시를 위해서 만든 makeArray() 메소드의 코드이다. 이 메소드는 int[] 배열을 리턴타입으로 삼는다. int[] makeArray() {int temp[] = new int[4];return temp;} makeArray() 메소드로부터 배열을 리턴받는 코드를 작성을 해보도록 하자. int[] intArray = makeArray(); // 메소드 호출 후 ..

Java/Java 기본 2018.06.12

다차원 배열

다차원 배열 자바에서 여러 차원의 배열을 만들 수 있다. 그러나 일반적으로 3차원 이상의 배열은 잘 사용하지 않는다. 실무 상에서도 일반적으로 2차원 배열까지만 사용한다. 가끔 3차원 배열을 사용하는 경우도 있기는 하지만 워낙 드문 일이고, 그마저도 자바 컬렉션으로 대체하는 경우가 많다. 따라서, 사실상 3차원 배열 이상은 사용할 일이 없다고 생각하면 될 것이다. 자바의 다차원 배열은 독특한 구조를 가지기 때문에 비정방형 배열을 만들 수도 있다. 1. 2차원 배열 - 2차원 배열의 선언과 생성 자바에서 2차원 배열의 레퍼런스 변수 선언은 다음과 같다. int intArray[][];int[] intArray[];int[][] intArray; 위의 3가지 방식들 중에서 아무 방식이나 골라서 사용하면 된다..

Java/Java 기본 2018.06.12

배열의 크기와 인덱스

배열의 크기와 인덱스 다른 언어와 동일하게 자바에서도 배열의 인덱스는 정수만 가능하며 정수형 상수도 사용할 수 있다. 인덱스는 0부터 시작하며 마지막 원소의 인덱스는 (배열의 크기 - 1)이 된다. 예를 들어서 “int intArray = new int[5];” 라는 문장을 통해서 정수형 배열 intArray를 생성하게 되면, 이 배열의 크기는 5가 되고, 인덱스는 0부터 4까지 존재하게 된다. 1. 배열의 크기, length 필드 자바에서는 배열도 하나의 객체처럼 다루어진다. 객체에 대해서 아직 다루지 않았기에 모를 수도 있겠지만, 자바에서 객체는 필드라는 변수를 가질 수 있다. 이 변수는 각 객체마다 고유하게 가지게 되는 특성이라고 생각하면 된다. 객체에 대해서 더 자세한 개념은 이후에 설명하도록 하..

Java/Java 기본 2018.06.12

배열 원소 접근

배열 원소 접근 배열의 원소에 대한 접근은 배열 레퍼런스 변수와 인덱스를 이용한다. 배열 레퍼런스 변수와 [] 사이에 원소의 인덱스를 적어 접근한다. 이때, 원소에 대한 인덱스는 0부터 시작한다. 배열의 원소를 사용하는 예를 들면 다음과 같다. int[] intArray = new int[10];intArray[0] = 5; // 인덱스가 0인 원소에 5를 저장intArray[3] = 6; // 인덱스가 3인 원소에 6을 저장int a = intArray[3]; // 배열로부터 값을 읽음 배열의 원소에 접긍ㄴ하려면 반드시 배열이 생성되어 있는 상태여야 한다. 배열이 생성되어 있지 않는 상태에서 배열에 접근하면 배열이 초기화가 되지 않았다는 컴파일 오류가 발생하거나 실행시간 오류가 발생한다.

Java/Java 기본 2018.06.12

배열의 참조

배열 참조 앞에서 배열의 선언과 생성은 별개임을 설명하였다. 그러므로 생성된 하나의 배열을 다수의 레퍼런스가 참조할 수도 있다. 다음 예시 코드를 통해서 그 개념에 대해서 알아보도록 하자. int oldArray[] = {1, 2, 3, 4, 5};int newArray[] = oldArray;newArray[1] = 3; 위의 이미지를 보게 되면 stack과 heap이라는 글자가 보일 것이다. JVM내에는 지역변수와 같이 메소드 내에서 발생한 데이터를 저장하는 stack이라는 공간과 객체나 배열등의 인스턴스를 저장하는 heap이라는 공간이 있다. 즉, 메소드 내에서 레퍼런스 변수를 선언하게 되면 stack 공간에 레퍼런스 변수가 생기게 된다. 이어서, 배열을 생성하게 되면 heap 공간에 배열 데이터가..

Java/Java 기본 2018.06.11

배열 (Array)

배열 (Array) 1. 배열이란? 배열은 순서(index)와 그 순서에 대응하는 데이터들로 이루어진 자료구조이다. 배열에는 같은 타입의 데이터들이 순차적으로 저장된다. 변수를 선언하기 위해서는 변수의 타입과 이름을 지정해 주어야 한다. 또, 그 변수의 값을 사용하기 위해서는 변수의 이름을 통해서 값에 접근해야 한다. 그런데, 변수의 수가 많아져서 하나하나 선언을 하기가 힘들 때에 배열을 사용하면 매우 효과적이다. 처음 배열을 선언할 때에 배열의 이름과 크기만 지정해주면 된다. 그 이후에는 배열 내의 원소들의 순서에 맞춰서 배열 내의 각 공간에 접근하면 된다. 간단한 예시를 통해서 살펴보도록 하자. 10개의 변수 i1부터 i10에는 각각 고유한 정수 값이 저장되어 있다. 이들의 총합을 알아내기 위해서는 ..

Java/Java 기본 2018.06.11

continue 문과 break 문

continue 문과 break 문 반복문이 실행되는 동안 작업문 내에 continue 문이나 break 문을 이용하여 반복의 흐름을 변경할 수 있다. break 문은 반복문을 벗어나기 위해 사용되며 continue 문은 반복을 한 번 건너뛰기 위해 사용된다. 1. continue 문 continue 문은 반복문을 완전히 빠져나가지 않으면서 반복문 내의 작업문을 건너뛸때 사용한다. 작업문 실행 도중 다음 반복으로 진행하는 효과가 있다. 예시를 통해서 자세히 알아보도록 하자. i.e. int sum = 0; for (int i = 0; i

Java/Java 기본 2018.06.11

중첩 반복

중첩 반복 (nested loop) 자바에서, 반복문은 다른 반복문을 내포할 수 있다. 즉, 반복문 안에 다른 반복문이 올 수 있다. 이것을 중첩 반복이라 한다. i.e.int k; for (int i = 0; i < 10; i++) { for (int j = 0; j < i; j++) { k = i + j;System.out.println("i + j = " + k);}} 이론적으로는 몇 번이고 중첩 반복이 가능하지만, 너무 많은 중첩 반복은 프로그램 구조를 복잡하게 하므로 보통 2중 또는 3중 반복 정도가 적당하다. 일반적으로, 중첩 반복은 반복의 범위가 명확한 for 문을 주로 이용한다.

Java/Java 기본 2018.06.11

while 문 & do-while 문

while 문과 do-while 문 1. while 문 while 문의 구문은 다음과 같다. while ( 조건식) {..작업문..} - 조건식 조건식은 for 문의 조건식과 동일하다. true인 경우에는 계속 반복되며, false인 경우에 반복을 종료하고 while 문을 벗어난다. for 문과는 달리 조건식이 없으면 컴파일 오류가 발생하게 된다. while 문은 for 문과 달리 초기문과 반복 후 작업문이 없다. 따라서 조건식에 사용되는 변수는 while 문 전에 선언과 초기화가 반드시 되어 있어야 한다. 또한 반복이 진행되면서 조건식을 false로 만들 수 있도록 설계되어야 한다. 그렇지 않으면 무한 반복에 빠지게 된다. 2. do-while 문 do-while 문의 구문은 다음과 같다. do {....

Java/Java 기본 2018.06.11

for문

for 문 반복문들 중에서 가장 많이 사용되는 for 문의 구문은 다음과 같다. for (초기문; 조건식; 반복 후 작업) {작업문..} 1. 초기문 for 문의 초기문에서는 대개 for 문의 조건식에서 사용하는 변수를 초기화한다. 초기문의 특징을 나열하면 다음과 같다.1) 초기문은 시작할 때 한 번만 수행된다.2) 콤마(,)로 분리하여 여러 문장을 나열할 수 있다.3) 초기문을 빈 상태로 두어도 된다. i.e.int i = 0;for ( ; i < 10; i++) { //빈 초기문......}int j, k;for (j = 0, k = 0; j 무한 루프......} 3. 반복 후 작업 for 문 내의 작업문이 실행된 후 반복 후 작업문이 실행된다. 반복 후 작업문 역시 콤마(,)로 분리하여 여러 문장..

Java/Java 기본 2018.06.10