[ 단원 04 ] 반복과 배열
학습목표 자바의 실행흐름에 대해 이해하고 설명할 수 있다. 다음의 다양한 반복문을 이해하고 프로그래밍에 활용할 수 있다. 순차적 실행 제어문, 조건문, 반복문 다음의 다양한 반복문을 이해하고 프로그래밍에 활용할 수 있다. • while, • do while, • for Break, continue 배열의 필요성과 선언과 생성에 대하여 이해하고 설명할 수 있다. 자료형, 배열이름, 배열크기를 이용한 배열선언과 생성 생성된 배열에서 원하는 원소의 참조 배열선언 시 동시에 초기 값 지정 방법 배열 복사를 위한 System.arraycopy() 이차원 이상의 다차원 배열, 래기드 배열 배열의 순차적 참조를 위한 for each
1. 제어문 개요
다양한 제어문 제어문 실행 흐름을 변형하여 조건에 따라 실행 지정된 블록을 반복 다른 곳으로 이동하여 실행 Section 1 제어문 개요 p110 다양한 제어문 제어문 실행 흐름을 변형하여 조건에 따라 실행 지정된 블록을 반복 다른 곳으로 이동하여 실행
2. 반복문
Section 2 반복문 p112 간편한 while 구문 while (조건식) 반복문;
Section 2 반복문 반복조건이 나중에 있는 do while do 반복문; while (조건식);
반복 횟수 제어에 적합한 for 문 반복문 변수 sum에는 1에서 10까지의 합이 저장 Section 2 반복문 반복 횟수 제어에 적합한 for 문 반복문 for (init; cond; inc) stmt; 변수 sum에는 1에서 10까지의 합이 저장
Section 2 반복문 실습예제 4-3
Section 2 반복문 중첩된 반복문 외부반복과 내부반복
중첩된 반복문 실습 예제 4-4 구구단 2*1 = 2 2*2 = 4 2*3 = 6 2*4 = 8 2*5 = 10 Section 2 반복문 중첩된 반복문 실습 예제 4-4 구구단 2*1 = 2 2*2 = 4 2*3 = 6 2*4 = 8 2*5 = 10 3*1 = 3 3*2 = 6 3*3 = 9 3*4 = 12 3*5 = 15 4*1 = 4 4*2 = 8 4*3 = 12 4*4 = 16 4*5 = 20 5*1 = 5 5*2 = 10 5*3 = 15 5*4 = 20 5*5 = 25 package control.loop; public class Nestedfor { public static void main(String[] args) { int i, j; for (i = 2; i <= 9; i++) { for (j = 1; j <= 5; j++) System.out.printf("%d*%d = %2d ", i, j, i*j); System.out.println(); }
Section 2 반복문 for와 while 문의 비교 for문은 while문으로 대체 가능
Section 2 반복문 반복을 종료하는 break 반복 내부에서 강제로 반복을 종료 break 문을 사용
반복을 계속하는 continue continue 문 반목몸체의 나머지 부분을 실행하지 않고 다음 반복을 계속 유지 Section 2 반복문 반복을 계속하는 continue continue 문 반목몸체의 나머지 부분을 실행하지 않고 다음 반복을 계속 유지
Section 2 반복문 실습예제 4-6 1에서 10까지 수 중 3의 배수가 아닌 것만 출력하는 for 문
3. 배열
Section 3 배열 p120 배열 동일한 자료형을 정해진 수만큼 저장 처리하는 객체(object)
Section 3 배열 배열 변수 선언과 배열 객체 생성 배열 선언 배열 생성
Section 3 배열 배열 선언과 생성을 한 문장으로
Section 3 배열 배열 원소 참조 배열첨자 유효범위를 벗어나면 실행 시 [배열첨자 범위초과 예외] ArrayIndexOutOfBoundsException가 발생 즉 첨자는 0에서 [배열 크기-1]까지 유효
Section 3 배열 배열 원소 참조 예외 예제 4-8
배열 초기화 배열 선언 초기화 구문 배열 선언을 하면서 대입연산자를 이용 Section 3 배열 배열 초기화 배열 선언 초기화 구문 배열 선언을 하면서 대입연산자를 이용 중괄호 사이에 여러 원소 값을 쉼표로 구분하여 기술하는 방법
Section 3 배열 배열 선언 이후의 초기화와 다른 배열의 대입
Section 3 배열 배열 복사 System.arraycopy()
배열을 위한 크기와 반복문 for each 배열크기 length 배열 원소 출력을 위한 for each Section 3 배열 배열을 위한 크기와 반복문 for each 배열크기 length 배열 원소 출력을 위한 for each 배열 원소 순서로 순차적 처리 각각의 반복 시 변수 vaule에 적당한 원소 값이 저장되어 수행
Section 3 배열 배열 예제 4-11 1 2 3 4 5 6 7 10 5 6 7 50 60 70 80 package array.basic; public class Arraycopy { public static void main(String[] args) { int[] copyFrom = {1, 2, 3, 4, 5, 6, 7}; int[] copyTo = {10, 20, 30, 40, 50, 60, 70, 80}; System.arraycopy(copyFrom, 4, copyTo, 1, 3); for (int i = 0; i < copyFrom.length; i++) System.out.print(copyFrom[i] + " "); System.out.println(); for (int value : copyTo) System.out.print(value + " "); }
Section 3 배열 이차원 배열 테이블 형태의 구조를 표현 이차원 배열은 행(row)과 열(column)의 구조로 표현
Section 3 배열 이차원 배열 원소 참조 실습예제 4-12
Section 3 배열 래기드 배열 행마다 열의 수가 다른 들쭉날쭉한 모양의 배열
Section 3 배열 이차원 배열 초기화
Section 3 배열 문자열을 위한 배열 일차원 배열 이차원 배열
배열 크기 지정 자바에서 배열 크기를 상수뿐 아니라 변수로도 지정이 가능 Section 3 배열 배열 크기 지정 자바에서 배열 크기를 상수뿐 아니라 변수로도 지정이 가능 배열 크기를 프로그램 실행 중에 표준입력으로 지정 가능 한 번 할당된 배열 객체의 원소 수를 늘리거나 줄이는 것은 불가능
명령행 인자 명령행 인자(command line arguments) 프로그램 실행 시 인자(command)를 받아 처리 Section 3 배열 명령행 인자 명령행 인자(command line arguments) 프로그램 실행 시 인자(command)를 받아 처리 메소드 main(String[] args)의 변수 args에 자료가 전달 프로그램 Command를 실행하면서 뒤에 여러 개의 인자를 입력하면 문자열 배열 args에 저장되어 프로그램에 전달 명령행 인자는 쉼표나 탭과 같은 분리자(separator)로 구분 정수나 실수의 숫자 형태도 모두 문자열(string)로 전달
Section 3 배열 실습예제 4-16