[java 이론] 08. 반복문
▽▼▽▼▽▼▽▼▽▼▽▼
이번 포스트의 내용
1. while 문
2. for 문
△▲△▲△▲△▲△▲△▲
1. while 문
+ 반복 처리는 같은 처리 과정을 여러 번 되풀이하는 것이다.
+ 단순한 반복작업을 사람이 1000번 10000번 반복하는 것은 비효율적이다.
+ 컴퓨터는 인간이 수행할 경우 막대한 시간이 소요되는 반복작업을 빠르고 정확하게 처리 할 수 있다.
+ 반복문에는 크게 while문과 for문이 있다.
+ while 문은 미리 반복 횟수를 알수 없고 조건에 따라서 반복하는 경우에 사용한다.
+ for 문은 정해진 횟수만큼 반복하는 경우에 사용된다.
★ while 문
+ while 문의 문법
while (조건식) { |
반복할 문장; |
} |
+ 조건식이 참이면 블록(중괄호로 묶여져 있는 문장들)을 반복적으로 실행한다.
+ 조건식이 거짓으로 계산될 때까지 조건식의 계산과 반복 문장의 실행이 계속된다.
+ 만약 무한 반복이 필요한 경우라면 조건식에 true 를 넣으면 된다.
+ while 문은 참이면 반복하는 문법이기 때문에 조건식이 true 면 항상 참이고, 그 결과 무한히 반복하는 코드를 볼 수 있을 것이다.
while (true) { |
반복할 문장; |
} |
★ do-while 문
+ do-while 문은 while 문과 반대로 먼저 반복 문장을 실행하고 조건을 나중에 검사하는 반복 구조이다.
+ do-while 문의 문법
do { |
반복할 문장; |
} while (조건식); |
+ do-while과 while의 차이점은 do-while은 조건식을 루프 구조의 바닥에서 계산하기 때문에
+ do 블록 안에 있는 문장이 적어도 한 번은 실행 된다는 점이다.
▲ 숫자 알아맞히기 게임은 do-while 문과 if문을 사용하여 만들어 보았다.
2. for 문
★ for 문 (=for loop)
+ for 문은 일정한 횟수만큼 반복할 때 유용하게 사용
+ 흔히 for 루프라고 부름
+ 왜냐하면 특정한 조건이 만족될 때까지 반복적으로 루프를 돌기 때문
+ for 문의 문법
for (초기식; 조건식; 증감식) { |
반복할 문장 |
} |
+ 초기식은 루프를 초기화 한다. 루프가 시작될 때 딱 한 번 실행된다.
+ 조건식이 참(true)이면 반복할 문장이 실행된다. 조건식이 거짓(false)이면 루프가 종료된다.
+ 증감식은 한 번의 반복 뒤에 실행된다. 대부분 증감식은 루프 제어 변수를 증가하거나 감소하는 역할을 한다.
+ 루프 제어 변수란 루프를 제어할 목적으로만 사용하는 변수이다.
▲ for문 예제 및 풀이
★ 중첩 for문
+ 반복문 안에 다른 반복문이 실행 될수 있다.
+ 외부에 위치하는 반복문을 바깥쪽 반복문(outer loop)라 하고, 내부에 위치하는 반복문을 안쪽 반복문(inner loop)라고 한다.
+ 중첩 반복문에서 가장 주의할 점은 각각의 반복문을 제어하는 변수가 서로 달라야 한다는 점이다.
+ 만약 같은 변수가 사용되면 논리적인 오류가 발생할 가능성이 높다.
▲ 중첩 반복문의 예제
+ 9번 줄을 보자. 루프 제어 변수인 i 와 j 가 어떻게 변하는지를 콘솔창에 보여지도록 문장을 짰다.
+ 이를 통해 중첩 반복문이 어떤식으로 진행되는지 살펴보자.
+ 첫번째 루프
+ 우선 처음에 변수 i = 0 , j = 0 이다. (7번줄 과 8번줄 초기식)
+ 변수들의 값이 콘솔창에 출력되었다. (9번줄 i = 0 , j = 0)
+ 이너 루프가 종료되면서 j 값은 1이 되었다. 후치수식이므로 기존의 j값이 한번 사용된 후에 증감이 이루어 진것 (8번줄 증감식)
+ 이너 루프의 두번째 루프가 시작된다. (8번줄 조건식)
+ 변수들의 값이 콘솔창에 출력되었다. (9번줄 i = 0 , j = 1)
+ 이너 루프의 두번째 루프가 종료되면서 j값은 2가 되었다. (8번줄 증감식)
+ 이너 루프의 세번째 루프가 시작된다. (8번줄 조건식)
+ 이너 루프의 세번째 루프는 거짓(false) 이므로 이너 루프가 종료된다.
+ 아우터 루프가 계속 실행되고 공백이 출력되었다. (11번줄)
+ 아우터 루프가 종료되면서 i 값은 1이 되었다. 역시 후치수식 (7번줄 증감식)
+ 두번째 루프
+ 변수 i가 3보다 작으므로(현재1) 아우터 루프의 두번째 루프가 시작된다. (7번줄 조건식)
+ 이너 루프가 실행된다. (8번줄 초기식)
+ 변수들의 값이 콘솔창에 출력된다. ( 9번줄 i = 1 , j = 0 )
+ 이너 루프가 종료되면서 j 값은 1이 된다. (8번줄 증감식)
+ 이너 루프의 두번째 루프가 실행된다. (8번줄 조건식)
+ 변수들의 값이 콘솔창에 출력된다. ( 9번줄 i = 1 , j = 1 )
+ 이너 루프가 종료되면서 j 값은 2이 된다. (8번줄 증감식)
+ 이너 루프의 세번째 루프가 실행된다. (8번줄 조건식)
+ 이너 루프의 세번째 루프는 거짓 이므로 이너 루프가 종료된다.
+ 아우터 루프가 계속 실행되고 공백이 출력된다. (11번줄)
+ 아우터 루프가 종료되면서 i 값은 2가 된다. 후치수식의 결과 (7번줄 증감식)
+ 세번째 루프는 생략
+ 글을 읽으며 손으로 따라가 보면 쉽게 중첩 반복문의 진행 순서를 이해할 수 있을 것이라 본다.
'Java > Java 공부' 카테고리의 다른 글
객체 지향 프로그래밍 (0) | 2016.07.18 |
---|---|
break 와 continue (0) | 2016.07.18 |
조건문 (0) | 2016.07.18 |
연산자 (operator) (0) | 2016.07.18 |
변수 (variable) (0) | 2016.07.18 |