명품 자바 프로그래밍

[명품 자바 프로그래밍] 3장 반복문과 배열 그리고 예외 처리 정리

n_0_jun 2024. 10. 19. 14:00
반응형

1. 다차원 배열

  • 배열 선언과 초기화:
    • 다차원 배열은 다음과 같이 선언하고 초기화할 수 있다.
      double[][] score = { {3.3, 3.4}, // 1학년 1, 2학기 평점 
      					{3.5, 3.6}, // 2학년 1, 2학기 평점
      					{3.7, 4.0}, // 3학년 1, 2학기 평점
      					{4.1, 4.2} // 4학년 1, 2학기 평점 };
       
    • score.length는 배열의 행 개수(학년 수)를 반환하고, score[0].length는 첫 번째 행의 열 개수(학기 수)를 반환한다.
  • 반복문을 통한 접근:
    • 이중 for 루프를 사용하여 다차원 배열에 접근할 수 있다.
      double sum = 0; 
      for (int year = 0; year < score.length; year++) { 
      	for (int term = 0; term < score[year].length; term++) { 
      		sum += score[year][term]; // 전체 평점 합 
      	}
      }
       
    • 다차원 배열의 각각의 길이를 활용하여 반복문을 통해 각 요소에 접근할 수 있다.
  • 가변 배열:
    • 자바에서는 각 행의 길이가 다르게 설정할 수 있어, 직사각형 형태가 아닐 수도 있다.
       
int[][] array = new int[4][];
array[0] = new int[2]; array[1] = new int[3]; // 서로 다른 길이의 배열

2. 메소드와 배열

  • 배열을 메소드에서 반환:
    • 메소드에서 배열을 반환하는 방법은 다음과 같다:
      public static double[] createArray() { return new double[]{1.0, 2.0, 3.0}; }
    • 메소드는 배열의 실제 주소값을 반환하며, 이를 통해 배열의 내용을 변경할 수 있다.

3. 예외 처리

  • 예외 처리 구문:
    • try-catch 구문을 사용하여 예외를 처리할 수 있다. 예를 들어, 0으로 나누는 경우를 처리하는 코드:
      try { int result = 10 / 0; // ArithmeticException 발생 } 
      catch (ArithmeticException e) { System.out.println("0으로 나눌 수 없습니다."); }
  • 일반적인 예외:
    • ArithmeticException: 0으로 나눌 때 발생.
    • NullPointerException: null 객체를 참조할 때 발생.
    • NumberFormatException: 문자열을 숫자로 변환할 때 형식이 맞지 않을 때 발생.
    • ArrayIndexOutOfBoundsException: 배열의 유효 범위를 벗어날 때 발생.

4. 반복문과 흐름 제어

  • for 루프:
    • 반복문의 다양한 사용 예시:
       
      for (int i = 0; i < 10; i++) { System.out.println(i); }
  • while 및 do-while 루프:
    • while 루프는 조건이 true일 때 반복한다.
       
      int j = 0; while (j != 20) { j++; }
    • do-while 루프는 조건을 체크하기 전에 최소 한 번은 실행된다.
       
      char c = 'a'; do { System.out.print(c); c = (char) (c + 1); } while (c <= 'z');
  • continue와 break:
    • continue: 현재 반복을 건너뛰고 다음 반복으로 진행한다.
    • break: 반복문을 즉시 종료한다.

5. 문자열과 입력 처리

  • 문자열 입력:
    • 전체 한 줄을 입력받기 위해 scanner.nextLine()을 사용할 수 있다.
       
      String text = scanner.nextLine(); // 한 라인을 통채로 입력
  • 문자 단위 입력:
    • 한 글자를 입력받기 위해 scanner.next()를 사용할 수 있다.
       
      char alpha = scanner.next().charAt(0); // 첫 글자를 추출
  • 문자열 비교:
    • 문자열 비교 시 == 연산자를 사용하면 안 되며, equals() 메소드를 사용해야 한다.

      if (text.equals("exit")) { // exit 입력 시 처리 }

6. 배열 및 길이

  • 배열 선언과 초기화:
    • 배열은 다음과 같이 선언 및 초기화할 수 있다.
       
      int[] intArray = new int[5]; // 선언 및 할당 int[] intArray2 = {4, 3, 2, 1, 0}; // 선언, 할당, 초기화
  • 배열 길이:
    • 배열의 길이는 length 속성을 사용하여 확인할 수 있다.
       
      int length = intArray.length; // 배열의 길이
  • for-each 문:
    • 배열을 순회할 때 for-each 문을 사용할 수 있다.
for (int number : intArray) { System.out.println(number); }
반응형