티스토리 뷰

Chap03 반복문과 배열 그리고 예외 처리

  1. 반복문
  2. continue 문과 break 문
  3. 배열
  4. 다차원 배열
  5. 메소드에서 배열 리턴
  6. main() 메소드
  7. 자바의 예외처리

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 - 황기태, 김효수 - 내용을 정리한 내용입니다.