Development Project

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

Language/Java

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

나를 위한 시간 2021. 12. 20. 14:15
  1. 반복문
    • for문
      • 기본형태
        for(초기작업; 조건식; 반복 후 작업){
        	// 초기문이 반복후 작업을 했을 때 조건식을 만족하지 않을 때까지 반복
        }
        - 초기문에 변수 선언, 여러변수를 초기화 가능

      • 특이한 형태
        // 반복조건이 true이면 무한반복 
        for(초기작업; true; 반복후작업){
        
        }
        
        // 반복조건이 비어있으면 true로 간주, 무한반복
        for(초기작업; true; 반복후작업){
        
        }
        
        // 초기 작업과 반복후작업은 ','로 분리하여 여러 문장 나열 가능
        for(int i=0; i<10; i++, System.out.println(i)){
        
        }
    • while문
      while(조건식){
      	// 조건식이 만족할 때 실행
      }​
    • do while문
      do{
      	// 무조건 실행한 뒤에 조건식 판단
      } while(조건식);​
      - 무조건 최소 한번 작업문 실행
  2. continue 문과 break 문
    • continue : 반복문을 빠져나가지 않으면서 다음 반복으로 진행
    • break : 이 명령어를 감싸는 가장 안쪽 반복문 하나를 완전히 빠져나갈 때 사용
    • label : 중첩반복문에서 한번에 빠져나갈때 사용
      System.out.println("exit을 입력하면 종료합니다.");
      outer: 	// label
      for(;;) { …	
      	for(;;) { …
      		for(;;) { …
      			if(text.equals("exit")) //"exit"이 입력되면 중첩반복 모두 종료
      				break outer; // 중첩반복문을 벗어남
      		}
      	}
      }
      System.out.println("종료합니다...");​
  3. 배열 : 인덱스와 인덱스에 대응하는 같은 타입의 데이터들로 이루어진 자료구조
    • 배열 선언
      // 1차원 배열
      int[] intArray;
      char[] charArray;
      
      // 2차원 배열
      int[][] intArray;
      char[][] charArray;
    • 배열 생성
      // 1차원 배열
      intArray = new int[10];
      charArray = new char[20];
      
      // 2차원 배열
      intArray = new int[2][5];
      charArray = new char[5][2];
    • 배열 선언과 함께 초기화
      // 1차원 배열
      int intArray[] = {0,1,2,3,4,5,6,7,8,9};
      
      // 2차원 배열
      int intArray[][] = {{0,1,2},{3,4,5},{6,7,8}};
    • for each문 : 배열이나 나열의 각 원소를 순차적으로 접근하는데 유용한 for문
      for (배열자료형 배열원소가저장되는변수이름 : 배열이름){
      
      }​
    • length 필드 : 배열의 크기
      - 1차원 : 배열이름.length == 배열의 크기
      - 2차원 : 배열이름.length == 행의 개수 / 배열이름[n행].length == n번째 행의 열 개수 

  4. 다차원 배열
    • 정방형 배열 : 각 행의 열의개수가 같은 배열
      int arr[][] = new int[4][4];​
    • 비정방형 배열 : 각 행의 열의 개수가 다른 배열
      int arr[][] = new int[4][];
      i[0] = new int[1];
      i[1] = new int[2];
      i[2] = new int[3];
      i[3] = new int[4];​
  5. 메소드에서 배열 리턴
    • public class Main{
      	public void main(String[] args){
          	int[] intArray;	// (1)
              intArray = makeArray();	// (4)
          }
          
          public int[] makeArray(){
          	int tmp[] = new int[4];	//(2)
              return tmp;	//(3)
      	}
      }
  6. main() 메소드 : 자바 응용프로그램의 실행 시작 메소드
    • 구조
      // 메인은 반드시 밑의 모든 명령어가 빠져서는 안됨
      public static void main(String[] args){
      
      }
      => main메소드는
      - public : 다른 클래스에서 메소드 접근이 가능하고
      - static : 객체 생성 전부터 호출이 가능하며
      - String[] args : 문자열 배열 형식의 매개변수를 인자로 받고 [ cmd창이나 이클립스 등에서 가능 ]
      - void : 리턴값이 존재하지 않는다. 

  7. 자바의 예외 처리
    1. 프로그램 오류의 종류
      • 컴파일 에러
        - 컴파일할 때 발생하는 에러
         - 문법에 맞지 않게 작성된 코드를 컴파일할 때 발견

      • 런타임 에러
        - 실행할 때 발생하는 에러
        • 에러 : 프로그램 코드에 의해서 수습될 수 없는 심각한 오류
        • 예외 : 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류
          • 예외종류
      • => 에러는 어쩔 수 없지만, 예외는 처리해야함!

    2. 예외 처리
      • 정의
        - 프로그램 실행 시 발생할 수 있는 예외의 발생에 대비한 코드를 작성하는 것
        - 프로그램의 비정상 종료를 막고, 정상적인 실행 상태를 유지하는 것이 목표

      • 자바에서 예외처리 절차
        - 예외 발생 --> 자바 플랫폼 인지 --> 응용프로그램에서 전달
        if) 응용프로그램이 예외를 처리 X ==> 응용프로그램이 강제 종료

      • 예외 처리 방법
        1. try-catch-finally문 사용
          try {
          	예외가 발생할 가능성이 있는 실행문(try 블록)
          } catch (처리할 예외 타입 선언) {
          	예외 처리문(catch 블록)
          } finally {	// 생략가능
          	예외 발생 여부와 상관없이 무조건 실행되는 문장
          }​
          • try-catch-finally문 규칙
            - try없이 catch나 finally만 쓸 수는 없음
            - try와 catch 사이에 코드를 집어넣을 수 없음
            - try 뒤에는 반드시 catch나 finally가 있어야 함
            - try 뒤에 finally만 있으면 반드시 예외선언을 만들어야 함 
        2. throws와 함께 try-catch-finallly문 사용
          import java.io.IOException;
          
          public class Main{
          	public static void main(String[] args) {
              	try{
                  	System.out.println(readString());
                  } catch(IOException e){
                  	System.out.println(e.getMessage());
                      e.printStackTrace();
                  }
              }
              
              public static String readString() throws IOException {
              	byte[] buf = new byte[100];
                  System.out.print("문자열을 입력하시오 : ");
                  System.in.read(buf);
                  return new String(buf);
              }
          }​
          • throws란?
            - 현재 메소드에서 예외를 처리하지 않고, 이 메소드를 사용하는 상위 메소드로 넘겨 처리하는 것
            - 개발자가 예외를 발생시키고자 하는 위치에서 예외처리를 해줄 수 있다는 장점이 있음
            - 라이브러리를 만들때 자주 사용됨

'Language > Java' 카테고리의 다른 글

Chapter06 모듈과 패키지 개념, 자바 기본 패키지  (0) 2021.12.28
Chapter05 상속  (0) 2021.12.27
Chapter04 클래스와 객체  (0) 2021.12.22
Chapter02 자바 기본 프로그래밍  (0) 2021.12.20
Chapter01 자바시작  (0) 2021.12.19
Comments