반복문은 반복되는 긴 코드를 단순화하는 문법으로 반복문을 사용하면 몇 천 줄에 해당하는 문장을 단 몇 줄로 줄일 수 있다. 가령, 1부터 1000까지의 정수를 출력하는 문장을 작성한다고 하면 System.out.print("1"); 에서부터 System.out.print("1000"); 1000개의 문장을 작성해야 하는데 1000줄의 코드를 작성한다는 것은 힘들 것이다. 이때 반복문 코드를 사용하여 작성하게 되면 단 3줄이면 가능하게 된다. 이러한 반복문은 크게 for문과 while문이 있다. while문은 반복 횟수가 불분명할 때 사용을 하고, for문은 반복 횟수가 비교적 분명할 때 사용을 하는 반복문이다. 공통적으로 반복문을 작성할 때에는 조건을 잘못 주게 되면 반복문을 빠져나오지 못하고 계속 반복을 하게 되는 무한 루프에 빠지게 될 수도 있다. 그렇기에, 무한 루프에 빠지지 않도록 코드를 잘 작성해야 한다.
while문은 대표적인 반복문으로서, 조건식이 참인 경우에는 반복 내용을 계속 수행하다가 조건식이 거짓이 되면 루프를 빠져나오는 반복문이다.
위의 예시를 보면 while(num!=0)이 있다. 이는 while 조건문의 조건식이며 num의 값이 0이 아니라면 계속해서 반복문 안의 내용을 반복 수행하는 코드이다. 만일 이 때, 조건이 while(num <6)이었다면 조건식이 계속 참이 되어 무한 루프에 빠지게 된다.
다음은 for문이다. for문은 가장 많이 쓰이는 반복문으로 for(초기설정; 조건식; 증감식)으로 구성이 된다.
위의 예시는 while문과 동일한 내용을 수행하는 반복문이며 while 반복문을 이용한 것을 단지 for 반복문으로 바꾼 것뿐이다. for문은 for(int i=1; i <=5; i++)로 구성돼 있다. 초기 설정을 정수형 변수 i=1로 두었다. 초기 설정식은 초기에 딱 한 번만 수행이 되고 조건식인 i <=5;를 수행하여 i가 5보다 작거나 같으면 반복문의 내용을 출력한다. 출력 후에는 i++를 수행한다. 다음에는 다시 조건문과 비교를 하여 참이라면 반복문의 내용을 수행하는 것이다. 이렇게 반복 수행을 하다 조건식이 거짓일 경우에는 반복문을 빠져나오게 된다. for문도 마찬가지로 무한 루프를 조심해야 한다.
현재 while문과 for문을 학습하였다. 간단한 코드는 반복문 하나만을 사용하여 완성시킬 수 있지만 무수히 많은 반복문이 쓰이고는 한다. 이는 중첩 반복문이라고 일컫는데, for문을 사용하여 구구단을 출력하는 예제를 통해 이를 확인해보도록 해보자.
for 반복문을 중첩하여 구구단을 완성하였다. 첫 번째 for 반복문은 안에 다시 작성된 또 다른 for 반복문을 몇 번 수행할 것인지를 결정하는 것이다. 위의 예제에서는 i가 1부터 9까지 총 9번을 반복하는 것으로 설정하였다. 이제 안에 작성된 또 다른 for 반복문을 보면 이 또한 j가 1부터 9까지 총 9번을 반복하는 것으로 설정되었다. 그렇다면 이 중첩 반복문은 총 9x9번의 횟수 즉, 81번을 반복하게 된다. 조금 더 쉽게 설명을 하면 i가 1일 때 j는 1부터 9까지 총 9번의 내용을 반복 수행하게 되고, 수행이 끝나면 안에 있는 반복문에서 빠져나와 i는 2가 된다. 그럼 다시 i가 2일 때 j는 1부터 9까지 총 9번의 내용을 반복 수행한다. 이렇게 총 81번을 수행하는 것이다. 즉 7~10번째의 코드들은 첫 번째 반복문의 반복 수행할 내용이라고 생각을 할 수 있다.
반복문에 대해서 알아보았다. 반복문은 가장 기본이 될 문법 중 하나이며 많은 코딩 연습을 통해 그 감을 익혀야 한다. for문이 가장 많이 쓰이는 반복문임은 틀림 없는 사실이지만 while문도 대표적인 반복문 중 하나이기에 2개의 반복문 모두 충분한 코딩을 해야 하는 것이 좋다.
'Java' 카테고리의 다른 글
Chapter 11 - 객체 지향 프로그래밍(Object Oriented Programming) (0) | 2022.01.07 |
---|---|
Chapter 10 - 배열 (0) | 2022.01.06 |
Chapter 08 - 조건문 (0) | 2022.01.04 |
Chapter 07 - 메소드 (0) | 2022.01.03 |
Chapter 06 - 연산자와 형변환 (0) | 2021.12.31 |