반복문 (for, while)
" 반복문은 어떤 작업이 반복적으로 수행되도록 할 때 사용한다. "
- 반복문의 종류 : for문, while문, do-while문
- for문
1. 반복 횟수를 알고 있을 때 사용 - 번호가 있는 데이터, 개수가 정해져 있는 데이터
2. 배열과 함께 주로 많이 사용
- while문
1. 무한 루프나 특정 조건에 만족할 때 까지 반복해야 할 경우
2. 주로 파일을 읽고 쓰기에 많이 사용
- do-while문
1. 무조건 최소 한 번은 수행된다.
- 초기식
- 반복문에 사용될 변수를 초기화 하는 부분이고 처음에 한번만 수행됩니다.
- 변수가 2개 이상이 필요할 때에는 콤마','를 구분자로 사용하여 변수를 초기화 한다. 단 2개의 변수 타입은 같아야 한다.
- 조건식
- 반복할 때 true / false 를 따질 조건식
- 조건식의 값이 참이면 반복을 계속하다가 거짓이 되면 반복을 중단하고 for문을 벗어난다.
- 조건식을 잘못 작성하게 되면 블럭 { } 내의 문장이 한 번도 수행되지 않거나 무한루프에 빠질 수 있으므로 주의할 것.
- 증감식
- 반복문을 제어하는 변수의 값을 제어하는 식(증가 / 감소) 이다.
- 반복할 때마다 증감식에 의해서 점진적으로 변하다가 조건식이 거짓이 되면 for문을 벗어난다.
- 증감식도 콥바','를 이용해서 두 문장을 이상을 하나로 연결해 사용할 수 있다.
→ 초기화, 조건식, 증감식 이 세 가지 요소는 필요하지 않으면 생략할 수 있다. (모두 생략도 가능)
→ 조건식이 생략된 경우 참으로 간주되어 무한루프가 된다. 대신 블럭 { } 안에 if문을 넣어서 특정 조건을 만족했을 때 빠져나오게 해주어야 한다.
for 문
초기식에서 'int i = 0;' 은 '0 부터'
조건식의 'i < 100;' 은 '99까지'
변화식의 'i++'은 '반복될 때마다 '1씩 증가'
→ 총 100개의 "Hello, world"가 출력된다.
우선적으로 ①초기화가 수행되고
이후부터는 조건식이 참인 동안 '②조건식 → ③수행될 코드 → ④증감식'의 순서를 반복한다.
그러다가 조건식이 거짓이 되면 for문 전체를 빠져나간다.
i는 1로 초기화되고 반복될 때마다 1씩 증가해서 5보다 작거나 같을 때 까지 for문 블럭 { } 안에 있는 print 문을 실행할 것이다.
i 가 6이 되면 for 문의 조건식이 false가 되기 때문에 for 문을 빠져나간다.
중첩 for문
중첩 for문은 for문 내에 또 다른 for문이 있는 것이다.
안쪽 for문의 'j <= i' → for문 전체가 반복되면서 안쪽 for문의 i 값의 조건식이 바뀌게 되어 아래와 같은 결과 값이 나옴
향상된 for문
타입은 배열이나 컬렉션 요소의 타입과 같아야 한다.
배열이나 컬렉션에 저장된 값을 매 반복마다 하나씩 순서대로 읽어와서 변수에 저장한다.
반복문 { } 내에서는 이 변수를 이용하여 코드를 작성한다.
향상된 for문은 일반 for문과 달리 배열이나 컬렉션에 저장된 값을 읽어오는 용도로만 사용할 수 있다.
배열인 array의 내용을 하나씩 읽어와서 tmp에 저장한다.
print문을 이용하여 하나씩 출력한 것이다.
while 문
- for문이 정해진 횟수만큼 반복한다면, while문은 조건식이 true일 경우에 계속해서 반복합니다.
- while문은 먼저 조건식을 평가하여 조건식이 거짓이면 문장 전체를 벗어나고, 참이면 블럭 내의 문장을 수행하고 다시 조건식으로 돌아간다. 조건식이 거짓이 될 때까지 이 과정이 반복된다.
- 조건에 따라서 실행을 1번도 안하고 진행할 수 있다. (do whlie과 반대)
① 조건식이 참(true)이면 블럭 { }안으로 들어가고, 거짓(false)이면 while 문을 벗어난다.
② 블럭 { }의 문장을 수행하고 다시 조건식으로 돌아간다.
- for문과 while문의 차이점
for문 과 while문은 같은 반복문이지만 아래와 같이 사용 용도에 따라 차이점이 있다.
for문 사용 | while문 사용 |
1. 반복 횟수가 정해진 경우 사용 2. 배열과 함께 주로 사용 |
1. 특정 조건에 만족할 때까지 반복해야하는 경우 2. 주로 파일을 읽고 쓰기에 사용 |
- for문과 while문 비교
위 코드의 for문과 while문의 코드는 완전히 동일하다.
이처럼 if문과 while문은 서로 변환이 가능하다.
do while 문
" 우선 해봐~ 원하는 결과가 나오면 내려가고 나오지 않으면 다시 해봐~ "
- 조건에 따라 반복을 계속할지를 결정할 때 사용하는 것은 while문과 동일하다.
- 반면에 do-while문은 먼저 do { } 안의 내용들을 실행한 다음에 조건식을 따진다.
- do while문은 최초의 한 번 수행을 보장하고, 반복적으로 사용자의 입력을 받아서 처리할 때 유용하다.
while은 조건식의 결과가 false이기 때문에 내용을 한 번도 실행하지 않고 빠져나온다.
do-while 은 조건식이 false지만 do { }의 내용을 먼저 수행하고 조건식을 따지기 때문에 "한번은 실행된다."가 출력된다.
do { }의 내용에서 print문이 실행되고 'i--'가 되기 때문에 do-while이 끝나고 i를 출력했을 때 0이 출력된다.
break 문
- 자신이 포함된 가장 가까운 반복문을 벗어난다.
- 특정 조건을 만족하면 반복문을 벗어나는 식으로 많이 사용된다.
break 흐름
continue 문
continue문은 반복문 내에서만 사용되며 전체 반복 중에 특정 조건을 만족하는 경우를 제외하고 싶을 때 많이 사용한다.
반복이 진행되는 도중에 continue를 만나면 반복문의 끝으로 이동하여 다음 반복으로 넘어간다.
for의 경우 - 증감식으로 이동
while, do-while의 경우 - 조건식으로 이동
'Programming > Java' 카테고리의 다른 글
[Java] for문(반복문)을 이용해 별찍기 (1) | 2020.04.16 |
---|---|
[Java] 반복문으로 중첩 덧셈하기 (for문 활용) (0) | 2020.04.16 |
[Java] 조건문 (if, switch) 개념 및 활용 예제 (0) | 2020.04.13 |
[Java] 형 변환 (Type Conversion) - 개념 및 규칙 (강제, 자동) (0) | 2020.04.12 |
[Java] 연산자 (Operator) (0) | 2020.04.12 |