2 minute read

이번엔 JAVA 의 반복문에 대해서 알아보고자 합니다. JAVA 의 반복문에는 C 에서와 같이 while, for 가 있으며 사용 방법도 비슷합니다. 여기에 JAVA 는 추가적으로 for each 문이 존재하는데 이 for each 문까지 알아보도록 하겠습니다.

반복문이란?

컴퓨터 프로그래밍에서 반복문은 제어문중 하나로, 프로그램 소스 코드내에서 특정한 부분의 코드가 반복적으로 수행될 수 있도록 하는 구문입니다.
프로그래밍에서의 반복문은 우리 사람의 일상에 대입시켜 보았을 때 다음과 같습니다.
예를 들어 우리가 일주일에 주 5일 오전 9시 부터 오후 6시까지 일을 해야 하는 회사에 취업을 했다고 가정해 보겠습니다. 그렇다면 우리는 일주일 중 월요일부터 금요일까지 반복적으로 회사에 출근하고 퇴근을 해야합니다.
이렇게 우리 일상에서도 반복이라는 행위는 우리가 잘 인식하지 못할 뿐 자연스럽게 녹아있습니다. 그렇다면 프로그래밍은 우리가 10번 반복할 것을 프로그램에서 한 번만 시켜서 프로그램이 알아서 10번 반복하도록 해주는 것인데 그럼 당연하게도 프로그래밍에서도 반복이라는 것이 당연히 필요합니다.
따라서 저의 개인적인 생각으로는 프로그래밍에서는 이러한 반복을 하도록 하기 위한 제어문으로 반복문을 제공하고 있으며 저는 이를 반복문이라고 생각합니다.



while 문

while 문은 조건식 또는 조건식의 결과만 가지고 동작하는 반복문으로 구조는 간단해 보이지만 조건식이 하나 밖에 없기 때문에 for 문보다 덜 자유롭다는 단점이 있습니다.



while 문의 구조

while (조건식) {
  <수행할 문장1>;
  <수행할 문장2>;
  ...
}



for 문

for 문은 JAVA 에서 가장 많이 사용되는 반복문으로 while 문과 동일하게 조건식을 이용하긴 하지만 대부분 반복을 몇 번 수행할 지에 대한 조건식을 사용하며, 또한 while 문과 다르게 for 문은 조건식 선언하는 부분에서 반복할 때 사용하는 변수를 초기화 하거나 증감 연산을 수행할 수 있다는 장점이 있습니다.
그래서 while 문과는 다르게 조건식이 어느 정도 제한적이여서 잘못된 조건식으로 인해 오류가 발생하거나 무한 루프에 빠지는 등의 문제가 적습니다.



for 문의 구조

for 문의 구조는 아래와 같습니다.

for (초기치;조건식;증감식){
  조건식이 참일 동안 반복
}

for each 문

for each 문은 J2SE 5.0 부터 추가되었습니다. for each 라는 키워드가 따로 있는 것은 아니고 앞서 배운 for 문을 이용합니다만 조건문의 문법이 조금 다릅니다.

for each 문의 구조

for each 문의 구조는 다음과 같습니다.

for (type 변수명 : iterate) {
  body-of-loop
}

iterate 는 루프를 돌릴 객체이고 iterate 객체에서 한 개씩 순차적으로 변수명에 대입되어 for 문이 수행됩니다. iterate 에 사용할 수 있는 자료형은 루프를 돌릴 수 있는 자료형(배열이나 Collection Framework 등)만 가능합니다.
그리고 변수명의 type(자료형)은 iterate 객체에 포함된 자료형과 일치해야 합니다.

단, for each 문은 따로 반복 횟수를 명시적으로 주는 것은 불가능하고, 한 단계씩 순차적으로 반복될 때만 사용이 가능하다는 제약이 있습니다.



for each 는 새로운 형태니 예제를 이용해 좀 더 구체적으로 알아보도록 하겠습니다.

List<String> numbers = new ArrayList<>(Arrays.asList("one", "two", "three"));
for (String number : numbers) {
  System.out.println(number);
}
one
two
three



break

반복문을 수행하다 보면 반복문을 종료해야 하는 상황이 발생합니다. 이럴 때 사용하는 것이 break 문 입니다.
프로그래밍을 하다보면 어떤 조건이 만족 됐을 때만 해당 반복문이 종료되도록 해야 하는 경우가 생각보다 많습니다. 또한 더 이상 반복하지 않고 종료 시켜서 필요 이상의 반복을 수행하지 않도록 해서 프로그램의 속도를 올려야 하기도 합니다.
그래서 이러한 경우를 위해 모든 반복문에서 반복무을 탈출할 때 break 를 사용합니다.



continue

반복문을 실행하다 보면 특정 조건 일 때 반복문 내부에 있는 코드를 실행시키지 않도록 하고 싶을 때가 있습니다. 이럴 때 사용하는 게 contine 로 특정 조건일 때 continue 하도록 해서 continue 이후의 실행 코드들은 모두 실행이 되지 않도록 합니다.



마치며

반복문 기초에 대해 알아보았습니다. 사실 반복문은 개념이 특별하다기 보다는 어떻게 사용하느냐가 중요하다고 생각합니다. 그래서 반복문의 개념적인 부분은 굉장히 간단합니다.
그래도 반복문에 대해 사용하기 전에 간단하긴 해도 개념부터 아는 것이 중요하다고 생각이 들어서 이번에 다루어 보았습니다. 추후에 JAVA 에서 사용하는 반복문에 대해 특별한 케이스가 있다면 다시 다루어 보도록 하겠습니다. 포스트 읽어 주셔서 감사드리며, 잘못된 내용, 오타, 궁금한 내용이 있으시면 댓글로 달아주시기 바랍니다.



참조

https://wikidocs.net/212

Tags:

Categories:

Updated:

Comments