━━━━ ◇ ━━━━
Java/Java 공부

반복문

[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번줄 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
COMMENT