티스토리 뷰
✔Chap03 반복문과 배열 그리고 예외 처리
- 반복문
- continue 문과 break 문
- 배열
- 다차원 배열
- 메소드에서 배열 리턴
- main() 메소드
- 자바의 예외처리
✔Chap03-1 반복문
- 초기문 : for문에서 초기문은 주로 조건식에서 사용하는 변수를 초기화한다.
- 초기문은 시작할 때 한번만 수행된다.
- 콤마(,)로 분리하여 여러 문장을 나열할 수 있다.
- 초기문은 빈 상태로 두어도 되지만 끝에 세미콜론(;)은 있어야 한다.
- 조건식 : 조건식에는 논리형 변수나 논리연산을 사용한다.
for(i=0; i<10; i++) { // i가 0~9까지 10번 반복
System.out.print(i); // 0에서 9까지 출력
}
- 작업문 : for문이 반복되는 동안 반복 실행된다.
✔Chap03-2 continue 문과 break 문
- continue 문 : 반복문을 빠져나가지 않으면서 즉시 다음 반복으로 넘거가고자 할 때 사용된다.
- break 문 : 하나의 반복문을 즉시 벗어날 때 사용한다.
✔Chap03-3 배열
- 배열 : 인덱스와 인덱스에 대응하는 데이터들로 이루어진 연속적인 자료 구조로서, 같은 종류의 데이터들이 순차적으 로 저장된다.
- 배열 선언 및 생성
- 배열에 대한 레퍼런스 변수 선언
- 배열 생성 - 배열의 저장 공간 할당
intArray = new int [5]; // 배열에대한 레퍼런스 변수, 배열 생성, 타입, 원소 개수
intArray[0] |
intArray[1] |
intArray[2] |
intArray[3] |
intArray[4] |
- 배열에 대한 레퍼런스 변수 선언
int intArray[];
int [] intArray;
- 배열 생성 : 데이터를 저장할 배열 공간을 할당받는 과정이다. 반드시 new 연산자를 이용하여 배열을 생성하며 []안에 생성할 원소 개수를 지정한다.
intArray = new int[5];
- 배열의 선언과 동시에 생성
int intArray[] = new int[5];
- 배열 초기화
int intArray[] = {4, 3, 2, 1, 0};
double doubleArray[] = {0.01, 0.02, 0.03, 0.04};
- 레퍼런스 치환과 배열 공유
int intArray[] = new int[5];
int myArray[] = intArray; // 레퍼런스 치환. myArray는 intArray와 동일한 배열 참조
- 배열의 크기, length 필드
int intArray [] = new int[]5;
int size = intArray.length; // size는 5
for(int i=0; i<intArray.length; i++) // intArray 배열크기(5)만큼 반복한다
System.out.println(intArray[i]);
✔Chap03-4 다차원 배열
- 2차원 배열의 선언과 생성
int intArray [] [];
char charArray [] [];
double doubleArray [] [];
int [] [] intArray;
char [] [] charArray;
double [] [] doubleArray;
intArray = new int [2] [5]; // 2행 5열의 2차원 배열 생성
charArray = new char [5] [5]; // 5행 5열의 2차원 배열 생성
doubleArray = new double [5] [2]; // 5행 2열의 2차원 배열 생성
- 2차원 배열 레퍼런스 변수 선언과 배열 생성 (동시)
int intArray[] [] = new int [2] [5];
char charArray [] [] = new char [5] [5];
double doubleArray [] [] = new double [5] [2];
- 비정방형 배열
- 정방형 배열 : 각 행의 열 개수가 모두 동일한 배열
- 비정방형 배열 : 행마다 열의 개수가 서로 다른 배열
4 x 4의 정방형 배열
int i [] []; // 2차원 배열 레퍼런스 선언
i = new int [4] []; // 각 행의 레퍼런스 배열 생성
i[0] = new int [4]; // 첫째 행에 4개 정수 배열 생성
i[1] = new int [4]; // 둘째 행에 4개 정수 배열 생성
i[2] = new int [4]; // 셋째 행에 4개 정수 배열 생성
i[3] = new int [4]; // 넷째 행에 4개 정수 배열 생성
✔Chap03-5,6 main() 메소드
- main() 메소드의 특징
- 자바 응용프로그램의 실행은 main() 메소드부터 시작한다.
- main() 메소드는 public 속성이다.
- public 속성은 메소드가 다른 클래스에서 호출 가능함을 나타낸다.
- main() 메소드는 static 속성이다.
- main() 메소드는 자신을 포함하는 클래스의 객체가 생성되기 전에, 처음부터 자바 가상 기계에 의해 호출되므로 static 속성으로 선언되어야 한다.
- mian() 메소드의 리턴 타입은 void이다.
- 아무 값도 리턴하지 않기 때문에 void 타입이다. main() 메소드를 끝내기 위해 리턴하려면 단순히 return; 문을 사용하면 된다.
- main() 메소드에는 문자열 배열(String []) 이 매개변수로 전달된다.
- 자바는 명령행에 입력된 인자들을 문자열 배열로 만들어 main() 메소드에 전달한다.
✔Chap03-7 자바의 예외 처리
- 예외
- 정수를 0으로 나누는 경우
- 배열의 크기보다 큰 인덱스로 배열의 원소를 접근하는 경우
- 존재하지 않는 파일을 읽으려고 하는 경우
- 정수 입력을 기다리는 코드가 실행되고 있을 때, 사용자가 문자를 입력한 경우
- 자바의 예외 클래스
예외 타입(예외 클래스) | 예외 발생 경우 | 패키지 |
ArithmeticException | 정수를 0으로 나눌 때 발생 | java.lang |
NullPointerException | null 레퍼런스를 참조할 때 발생 | java.lang |
ClassCastException | 변화할 수 없는 타입으로 객체를 변환할때 발생 | java.lang |
OutOfMemoryError | 메모리가 부족한 경우 발생 | java.lang |
ArrayIndexOutOfBoundsException | 배열의 범위를 벗어난 접근 시 발생 | java.lang |
IllegalArgumentException | 잘못된 인자 전달시 발생 | java.lang |
IOException | 입출력 동작 실패 또는 인터럽트 시 발생 | java.io |
NumberFormatException | 문자열이 나타내는 숫자와 일치하지 않는 타입의 숫자로 변환 시 발생 | java.lang |
InputMismatchException | Scanner 클래스의 nextInt()를 호출하여 정수로 입력받고자 하였지만, 사용자가 'a' 등과 같이 문자를 입력한 경우 | java.util |
✔Chap03 요약
- 자바의 반복문은 for 문, while 문, do-while 문의 3가지
- do-while문은 for나 while문과 달리, 조건식이 작업 문장 뒤에 있어 무조건 한번 이상은 작업문이 수행된다.
- 반복문 내의 작업문에 다시 반복문을 사용할 수가 있으며, 이를 중첩 반복이라 한다. 중첩은 여러 번 가능하다.
- continue 문은 반복문 내에서 다음 반복으로 진행하다.
- break 문은 속해 있는 반복문 하나를 완전히 빠져나갈 때 사용한다.
- 배열은 같은 타입의 데이터들이 순차적으로 저장된 자료 구조이다.
- 배열을 만드는 과정에서 배열 레퍼런스 변수의 선언과 배열 생성의 두 과정으로 나뉜다. 배열 레퍼런스 변수의 선언은 배열 객체의 주소 값을 가질 변수에 대한 선언이고, 배열의 생성은 배열 원소에 대한 순차적 저장 공간을 확보하는 것이다.
- 배열은 자바에서 객체로 다루어진다.
- 자바 응용프로그램이 발생한 예외를 처리하는 코드를 작성해두지 않았으면 프로그램은 강제 종료된다.
명품 JAVA Programming - 황기태, 김효수 - 내용을 정리한 내용입니다.
'Java' 카테고리의 다른 글
명품 JAVA Programming Chap05 상속 (0) | 2022.08.13 |
---|---|
명품 JAVA Programming Chap04 클래스와 객체 (0) | 2022.08.03 |
명품 JAVA Programming Chap01~02 자바 기본 프로그래밍 (0) | 2022.08.01 |
[Java] 추상 클래스 (0) | 2022.07.27 |
[Java] JVM 메모리 구조 (0) | 2022.07.26 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 브루트 포스법
- 25304번
- 백준14720 # 그리디 알고리즘 # greedy
- heap area #stack area #static area #jvm
- 반복문
- 단계10
- Spring
- 2798블랙잭
- 백준2720번 #그리디 알고리즘
- 25083번
- 백준17608번
- object 클래스 # java
- level2
- 12605번
- java #추상클래스
- java #예외처리 #throw #throws
- level1 # 입출력과 사칙연산
- level3
- 11034번
- 나는야 4학년 #5학년 까지 가보자구
- 백준10871번
- 명품 JAVA Programming - 황기태
- 이분탐색
- 정보처리기사 실기 #정처기 실기 #2024년 2회 #정처기 2024년 2회 #공부법 # 꿀팁
- 백준 18258번
- static #자바 메모리 구조 #멤버 변수
- 자바 #자바문법 #자바기초 #참조형 #기본형
- 올 겨울은 조금 따뜻할 것 같다.
- 백준 10828번 # 스택
- 스프링웹개발기초
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함