일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- FileInputStream
- 보조 스트림
- SSR
- 다형성
- 인스턴스
- exception
- 새벽공부
- 배열
- 파이팅
- 초보개발자
- MPA
- 메서드
- node.js
- 바이트 단위 스트림
- 변수
- 코딩
- 백엔드
- 자바
- 자료형
- 인터페이스
- 문자 단위 스트림
- try-catch
- 상속
- 개발자
- throws
- ArrayList
- 코린이
- Java
- 예외 처리
- 졸리다
- Today
- Total
SHUSTORY
04-2 반복문 본문
반복문
반복문은 영어로 루프(loop)이므로 반복문을 수행하는 것을 '루프가 돈다'라고 표현하기도 한다.
자바 프로그램에서 사용하는 반복문의 종류에는 while문, do-while문, for문 이렇게 세 가지가 있다.
while문
while문은 조건식이 참인 동안 중괄호 { } 안의 수행문을 반복해 처리한다.
조건문과 마찬가지로 수행문이 하나인 경우 { }를 사용하지 않을 수 있다.
위의 예제에서는 num과 sum 값을 초기화하지 않으면 오류가 난다.
그 이유는 while문에서 num값과 sum값을 더하는 연산을 하는데,
만약 초기화하지 않고 연산을 수행할 경우 어떤 값을 더해야 할 지 알 수 없기 때문이다.
즉 변수를 사용하여 연산을 하거나 그 값을 가져다 사용하려면 변수는 반드시 어떤 값을 가지고 있어야 한다.
while문이 무한히 반복되는 경우
while문은 특정 조건을 만족하는 동안 반복되는 명령을 수행하고, 그렇지 않으면 수행을 중단한 후 while문을 빠져나온다.
while문을 무한으로 반복되도록 하려면 while문의 조건식이 참이면 된다.
do-while문
while문은 조건을 먼저 검사하기 때문에 조건식에 맞지 않으면 반복 수행이 한 번도 일어나지 않는다.
하지만 do-while문은 { } 안의 문장을 한 번 수행한 후 조건식을 검사한다.
시작 -> 수행문1 -> 조건식 -> (참일 경우) -> 수행문1 -> 조건식 -> (거짓일 경우) -> 수행문2 -> 종료
for문
초기화식은 for문이 시작할 때 단 한 번만 수행하며 사용할 변수를 초기화한다.
조건식을 통해 언제까지 반복 수행할 것인지 구현하고,
증감식에서 반복 횟수나 for문에서 사용하는 변수 값을 1만큼 증가 혹은 감소시킨다.
예제03에서 i의 값이 10일 때 조건식을 마지막으로 만족하며 i의 값이 1 증가하여 11로 마무리된다.
for문은 배열과 함께 자주 사용한다.
배열은 같은 자료형이 순서대로 모여 있는 구조로, 배열 순서를 나타내는 인덱스 값은 0부터 시작한다.
배열의 전체 요소 개수가 n개일 때, 요소 위치는 n-1로 표현할 수 있다.
이러한 배열의 특성과 증감에 따른 반복을 표현하는 데 적합한 for문의 특성 상 배열과 자주 사용되는 것이다.
for문 요소 생략하기
for문을 구성하는 요소는 코드가 중복되거나 논리 흐름상 사용할 필요가 없을 때 생략 가능하다.
- 이미 이전에 다른 곳에서 변수가 초기화되었을 경우 for문의 초기화 부분을 생략할 수 있다.
- 어떤 연산 결과 값이 나왔을 때 for문의 수행을 멈추고자 할 경우 조건식을 생략하고 for문 내부에 if문을 사용한다.
- if문과 함께 break를 사용할 경우 for문이 종료된다.
- 증감식의 연산이 복잡하거나 다른 변수의 연산 결과 값에 좌우된다면 증감식을 생략하고 for문 내부에 작성한다.
- 무한 반복하고자 할 경우 모든 요소를 생략할 수 있다.
* 요소를 생략하더라도 ; 표시는 생략하지 않는다.
* 반복문을 중첩하여 내부에 반복문을 작성할 수 있다.
continue문
continue문은 반복문과 함께 사용된다.
반복문 안에서 continue문을 만나면 이후의 문장은 수행하지 않고 for문 ( )의 증감식을 수행한다.
위의 예제04를 통해 살펴보자면 num값이 짝수일 경우 continue문을 만나 이후의 수행을 생략하고 num값이 1 증가한 뒤 이후의 문장을 수행한다.
이렇듯 반복문을 수행할 때 특정 조건에서 수행하지 않고 건너뛰고자 할 때 contunue문을 사용한다.
break문
switch-case문에서 특정 조건을 만족하여 break문을 만나면 더 이상 다른 조건을 비교하지 않고 switch문을 빠져나왔다.
반복문도 마찬가지로 break문을 사용하면 그 지점에서 더 이상 수행문을 반복하지 않고 반복문을 빠져나온다.
위의 예제 03을 다시 살펴보면 i의 값이 마지막에 11이 되어 종료된다.
이렇게 될 경우 "1부터 i까지의 값이 sum이다."라는 문장을 출력시킬 경우 원하던 문장과 다른 결괏값을 얻게 될 것이다.
우리가 원하는 값을얻게 하기 위해서는 증감이 이루어지기 전에 반복문을 끝내야 하는데,
이 경우에 사용되는 것이 break문이다.
예제03에서 원하는 i의 값을 얻기 위해 break문을 사용하면 예제04와 같이 프로그래밍 할 수 있다.
예제05에서도 중간에 조건식을 생략하고 for문 내부에 if문과 break문을 작성하여 원하는 값을 정확하게 얻을 수 있다.
break문을 사용하면 모든 반복문을 빠져나오는 것이 아닌 break문을 감싸고 있는 반복문만 빠져나온다.
즉, 중첩된 반복문을 사용할 경우 내부의 반복문에 break문을 작성한다면 해당 break문을 만났을 때 외부의 반복문은 빠져나오지 않고 내부의 반복문만 빠져나온다.
즉 continue문은 반복문을 계속 수행하지만 특정 조건에서 수행문을 생략하는 경우에 사용하고,
break문은 반복문을 더 이상 수행하지 않고 빠져나올 때 사용한다.
'프로그래밍 > JAVA' 카테고리의 다른 글
05-2 클래스 살펴보기 (0) | 2023.02.20 |
---|---|
05-1 객체 지향 프로그래밍과 클래스 (0) | 2023.02.20 |
04-1 조건문 (0) | 2023.02.20 |
03-1 기본 연산자 (0) | 2023.02.20 |
02-5 형 변환 (1) | 2023.02.19 |