세리프 따라잡기

객체지향프로그래밍 3 본문

Java

객체지향프로그래밍 3

맑은 고딕 2021. 3. 29. 17:08

1. 조건문 [단순 if문, if-else문, switch문]

- 단순 if문: if의 괄호 안에 조건식(논리형 변수나 논리 연산)

- if-else문: 조건식이 true면 실행문장1, false이면 실행문장2 실행

- switch문: case의 비교값과 일치하면 해당 문장을 수행하고(break를 만나면 벗어난다), 일치하지 않으면 default문을 실행한다. (default문은 생략이 가능하다)

case문의 값에는 문자, 정수, 문자열 리터럴(JDK 1.7부터)만 허용하며 실수 리터럴은 허용되지 않는다. (변수, 수식 X)

 

2. 반복문 [for, while, do-while문]

- for문 (가장 많이 사용되는 반복문) : 횟수만큼 반복 하는 문장일 때 주로 사용

- while문: 조건식이 '참'인 동안 반복 실행

- do-while: 작업문은 무조건 한 번은 반드시 수행한 뒤, 조건식이 참이면 반복 수행한다.

'a'는 ascii 코드로 '97'이다. a = (char)(a+1); 일때 == (97+1)과 같으므로 결과값은 98, 따라서 문자열 변환으로 b 이다.

 

3. continue문

반복문을 빠져 나자기 않고, 다음 반복으로 제어 변경

반복문에서 continue; 문에 의한 분기

- break문

반복문 하나를 즉시 벗어날 때 사용

하나의 반복문만을 벗어나며, 중첩 반복의 경우 안쪽 반복문의 break문이 실행되면 안쪽 반복문만 벗어난다.

 

4. 배열(array)

- 인덱스(0, 1, 2, 3 등 순서)와 인덱스에 대응하는 데이터들로 이루어진 자료 구조

배열을 이용하면 한 번에 많은 메모리 공간 선언 가능

 

- 배열은 같은 타입의 데이터들이 순차적으로 저장되는 공간

원소 데이터들이 순차적으로 저장됨

인덱스를 이용하여 원소 데이터 접근

반복문을 이용하여 처리하기에 적합한 자료 구조

 

- 배열 인덱스

0부터 시작

인덱스는 배열의 시작 위치에서부터 데이터가 있는 상대 위치

→ (1)과 같은 경우는 메모리가 다 다를 수 있고 중구난방, (2)는 메모리 할당까지 순차적으로 저장

 

사용을 하기 위해 크게 2가지 방법이 있는데,

- 참조 변수를 선언하여 메모리 할당하기

→ (1)의 intArray는 null값이기 때문에, (2)에서 선언을 통해 배열을 사용하게 해준다. = 선언 후 반드시 생성해주기

 

* 선언과 동시에 배열 생성을 한다면 int intArray[] = new int[5]; 라고 해주면 된다.

 

- 배열 초기화: 배열 생성과 값 초기화

 

- 레퍼런스(참조) 치환과 배열 공유

레퍼런스 치환으로 두 레퍼런스가 하나의 배열을 공유하는 것.

→ 즉, intArray와 myArray 둘 다 같은 배열을 사용할 수 있다.

 

- 배열의 크기, length 필드

자바의 배열은 객체로 처리한다.

→ 배열의 크기는 배열 객체의 length 필드에 저장함. [몇 개인지 모를 때 이용하여 알아보는 게 가장 안전]

 

length 필드를 이용해 배열의 모든 값을 출력하는 예제

* 자바가 c/c++에 비해 배열을 다루기 10배 편한 구조이다.

 

5. for-each문

배열이나 나열(enumeration)의 원소를 순차 접근하는데 유용한 for문

정수 배열의 합을 구하는 예제

 

6. 2차원 배열

- 선언

int intArray[][]; 또는 int[][] intArray;

 

-2차원 배열 생성

intArray = new int[2][5];

int intArray[] = new int[2][5]; // 배열 선언과 생성 동시

 

- 2차원 배열의 구조

 

- 2차원 배열의 length 필드

i.length → 2차원 배열의 행의 개수, 2

i[n].length → n번째 행의 열의 개수

i[1].length → 1번째 행의 열의 개수, 5

 

- 2차원 배열 선언과 동시에 초기화

charArray 예시↓

a b c
d e f

 

'Java' 카테고리의 다른 글

객체지향프로그래밍 4  (0) 2021.03.29
객체지향프로그래밍 2  (0) 2021.03.29
객체지향프로그래밍 1  (0) 2021.03.08
Comments