-
[Java] 반복문과 배열Java 2025. 3. 5. 12:20
✅ 반복문
반복문은 일정한 조건이 충족될 때까지 동일한 명령문이나 코드 블록을 반복 실행하도록 하는 제어문.
이를 통해 반복적인 작업을 효율적으로 처리.
✅ for 문
1️⃣ for 문의 기본구조
for 문은 반복 시작 전, 종료 조건, 그리고 조건 변화 수식을 한 줄에 정의하여 반복 횟수를 명확하게 지정할 수 있음.
for (시작조건; 종결조건; 조건변화수식) { // 반복 실행할 명령문 }
2️⃣ 예제: "안녕하세요!" 10번 출력
for (int i = 1; i <= 10; i++) { System.out.println("안녕하세요!"); }
- 반복 횟수: 1회부터 10회까지
- i의 값: 1, 2, 3, …, 10
3️⃣ 활용 예제: 손님들에게 인사하기
public class Robot { public static void main(String[] args) { int customers = 5; for (int i = 1; i <= customers; i++) { System.out.println(i + "번째 손님, 안녕하세요!"); } } }
4️⃣ break 문과 함께 사용하기
break 문은 특정 조건이 만족되면 반복문을 종료시키는 역할
public class Robot { public static void main(String[] args) { int customers = 5; for (int i = 1; i <= customers; i++) { if (i == 4) { // 4번째 손님이 나오면 break; // 반복문 탈출 } System.out.println(i + "번째 손님, 안녕하세요!"); } System.out.println("반복문이 종료되었습니다."); } }
- 실행 결과: 1번째, 2번째, 3번째 손님에게만 인사하고 반복문 종료
5️⃣ continue 문과 함께 사용하기
continue 문은 현재 반복 작업을 건너뛰고 다음 반복으로 넘어가게 함.
public class Robot { public static void main(String[] args) { int customers = 5; for (int i = 1; i <= customers; i++) { if (i == 2) { // 2번째 손님은 건너뛰기 continue; } System.out.println(i + "번째 손님, 안녕하세요!"); } System.out.println("반복문이 종료되었습니다."); } }
- 실행 결과: 1, 3, 4, 5번째 손님에게 인사
✅ while 문
1️⃣ while 문의 기본 구조
while 문은 종결 조건만 가지고 있으며, 조건식이 참(true)인 동안 반복
while (종결조건) { // 반복 실행할 명령문 }
2️⃣ 예제: "안녕하세요!" 10번 출력
int i = 1; while (i <= 10) { System.out.println("안녕하세요!"); i++; // 조건 변경이 없으면 무한 루프 발생 }
- 주의: 조건식이 false가 될 수 있도록 적절한 조건 변화 수식을 작성해야 합니다.
✅ do-while 문
1️⃣ do-while 문의 기본 구조
do-while 문은 while 문과 유사하지만, 반드시 한 번은 실행되고 나서 조건을 검사
do { // 반복 실행할 명령문 } while (종결조건);
2️⃣ 예제: "안녕하세요!" 10번 출력
int i = 1; do { System.out.println("안녕하세요!"); i++; } while (i <= 10);
✅ 배열이란?
- 정의:
비슷한 주제의 데이터들을 하나의 그룹으로 묶어 표현하는 방법.
관련된 데이터를 편리하게 관리할 수 있도록 도와줌. - 사용 이유:
모험가 100명, 1000명의 이름과 같이 많은 데이터를 변수 하나씩 선언하는 대신 배열을 활용하면 코드가 간결해지고 유지보수가 쉬워짐.
// 변수로 모험가 이름 관리 (비효율적) String name1 = "gygim"; String name2 = "Steve"; String name3 = "Grace"; // ... name1000까지 // 배열로 모험가 이름 관리 (효율적) String[] adventurerList = {"gygim", "Steve", "Grace", /* ... */ };
✅ 배열의 기본 개념
1️⃣ 배열의 길이 (Array Length)
- 배열의 길이는 배열에 들어갈 수 있는 데이터 개수를 의미.
- 중요: 배열을 생성할 때 지정한 길이는 변경할 수 없음.
- 배열의 길이는 배열이름.length 로 확인할 수 있음.
int[] adventurers = {"gygim", "Steve", "Grace"}; int arrLength = adventurers.length; // 배열 길이 구하기
2️⃣ 배열 선언 (Array Declaration)
배열의 문법
자료형[] 변수이름 = new 자료형[배열의길이]; // 배열선언
- 방법 1: 변수 선언과 배열 생성(길이 설정)을 별도의 줄에서 진행
int[] arr; // 배열 선언 arr = new int[5]; // 길이가 5인 배열 생성
- 방법 2: 한 줄에서 배열 선언과 생성 동시에
int[] arr = new int[5]; // 선언 및 길이 설정
- 문자열 배열 예제:
String[] arrA = new String[5];
- 논리형 배열 예제:
boolean[] arrB = new boolean[3];
3️⃣ 배열의 요소 (Array Element)
- 요소: 배열에 저장된 각각의 값
- 배열은 선언과 동시에 초기값을 설정할 수도 있음.
int[] arr = {10, 20, 30, 40, 50}; // 배열 선언과 동시에 요소 설정
- 인덱스(Index): 배열의 요소에 접근하기 위한 번호이며, 0부터 시작합니다.
System.out.println("배열의 1번째 요소 = " + arr[0]); // 10 출력 System.out.println("배열의 2번째 요소 = " + arr[1]); // 20 출력 // ...
주의: 배열의 범위를 벗어난 인덱스로 접근하면 ArrayIndexOutOfBoundsException 에러가 발생.
✅ 배열의 요소 삽입 및 수정
배열의 각 요소는 인덱스를 통해 값 삽입과 수정이 가능.
int[] arr = new int[5]; arr[0] = 100; // 첫 번째 요소에 100 삽입 arr[1] = 200; // 두 번째 요소에 200 삽입 // ... System.out.println("arr[0] = " + arr[0]); // 100 출력
✅ 배열 탐색
반복문을 사용하면 배열의 모든 요소를 손쉽게 탐색.
1️⃣ 일반 for 문을 활용한 배열 탐색
int[] arr = {1, 2, 3, 4, 5}; for (int i = 0; i < arr.length; i++) { System.out.println("numbers[" + i + "] = " + arr[i]); }
- 설명:
인덱스 변수 i를 활용해 0부터 arr.length - 1까지 순회하면서 각 요소에 접근.
.
2️⃣ 향상된 for 문 (Enhanced for loop)
향상된 for 문은 배열의 모든 요소를 하나씩 꺼내서 활용할 때 편리.
int[] arr = {100, 200, 300, 400, 500}; for (int a : arr) { System.out.println("배열의 각 요소 = " + a); }
- 설명:
인덱스를 직접 사용하지 않으므로 범위를 벗어나는 오류가 발생하지 않음.
✅ 2차원 배열
2차원 배열은 행(row)과 열(column)로 구성된 데이터를 표현할 때 사용.
예를 들어, 바둑판과 같이 좌표나 위치 정보를 표현할 때 유용.1️⃣ 2차원 배열 선언
// 2 x 2 배열 선언 (빈 2차원 배열) boolean[][] board = new boolean[2][2];
혹은 배열을 선언과 동시에 초기값을 설정할 수도 있습니다.
boolean[][] board = { {true, false}, // 0행: 0열은 true, 1열은 false {false, true} // 1행: 0열은 false, 1열은 true };
2️⃣ 2차원 배열 탐색
2차원 배열의 각 요소에 접근할 때는 행과 열의 인덱스를 함께 사용.
System.out.println(board[0][0]); // 0행 0열 -> true System.out.println(board[0][1]); // 0행 1열 -> false System.out.println(board[1][0]); // 1행 0열 -> false System.out.println(board[1][1]); // 1행 1열 -> true
'Java' 카테고리의 다른 글
[Java] 메서드란 (1) 2025.03.05 [Java] 연산자와 조건문 (0) 2025.03.05 [Java] 변수와 입출력 (0) 2025.03.05 [Java] 명명 규칙 및 패키지, 클래스 (1) 2025.03.05 [Java] Java란? (1) 2025.02.25