Java에서 반복문에는 for문과 while문, do~while문이 있다.
이번 포스팅은 for문에 대해서 알아보자.
for문이란?
어떤 명령문들을 반복하고자 할때 사용하는 제어문 형식 중 하나로 반복횟수가 정해진 경우 '주로' 사용한다.
반대로 반복횟수를 모를 경우에는 '주로' while문을 사용한다.
for문의 형식은 다음과 같다.
▲ 초기식은 for문이 실행될 때 최초1회만 실행되는 코드이다. 반복조건은 true 또는 false가 나오는 식으로 true일 경우 명령문을 실행, false일 경우 for문을 종료하게 된다. 증감식은 명령문을 실행한 다음 실행되는 코드이다.
반복순서를 구조화해보면 다음과 같다.
반복조건이 없거나 조건대신에 true를 지정하면 무조건 무한 루프 즉, 무한대로 계속 실행되어버리게 된다.
▲ 반복조건에 세미콜론 두개나 true를 직접 넣게되면 무한루프가 실행된다.
for문을 이용한 몇 가지 예시를 통해 사용법을 체득해보자.
Q.1)반복분을 이용해서 1부터 10까지 누적합을 구하기
Q.2)1부터 10까지의 숫자 중 2의 배수의 합은?
방법1) 2씩 증가하도록 증감식 작성
방법2) 1부터 1씩증가하면서 10까지 반복하면서 i의 값이 2의배수인 경우에만 누적
여기서 한 가지 주의사항(?)!
위 예제들에서 선언한 변수 i는 for문의 중괄호안에서만 유효한 변수이다. 즉, for문이 종료되면 변수 i는 삭제되어버린다.
▲ for문이 종료된 후 i의 값을 출력하려고 하면 위와 같이 변수가 없다는 error를 발생시킨다.
이럴 때는 변수 i를 for문 안에서가 아닌 밖에서 선언하고 사용하게 되면 for문이 종료되더라도 사용할 수 있게 된다.
▲변수 i를 for문 밖에서 선언하면 for문이 종료되어도 사용할 수 있다.
if문 안에 if문을 넣을 수 있듯이 for문 안에도 for문을 넣을 수 있다. 이를 이중 for문이라고 부른다.
이때 이중 for문에서 바깥 for문은 행(row)을 의미하고 안쪽 for문은 열(column)을 나타낸다.
이를 이용해서 행렬형태의 데이터도 출력할 수 있다. 아래의 예제를보자.
▲ 이런 이중 for문으로 행렬의 형태의 자료의 코드를 짜기위해서는 행렬형태의 규칙을 찾는 것이 중요하다.
위 예제 같은경우 행의 번호와 열의 번호의 합이 5가되는 자리에는 숫자 1이, 나머지 자리에는 0이 들어간다는 규칙이 있다. 이런 규칙을 코드로 나타내면 위와 같이 나타낼 수 있다.
또 다른 구구단 예제를 보자
▲ 주석처리 된 형태로 출력되는 구구단 코드를 짜기위해서는 역시 행렬의 규칙을 찾는 것이 필요하다.
위 예제 같은경우 행에서 (앞) * (뒤) = (곱)의 형태를 띄고 있는데, 여기서 (앞)은 숫자가 1씩 증가할 때 (뒤)는 변화가 없는 것을 볼 수 있다. 이런 규칙을 이용해서 코드를 위와 같이 짤 수 있다.
추가)
무한반복을 제어하기 위해서는 break를 이용할 수 있다. 좀 더 자세한 내용은 다른 포스팅으로 하도록 하고 제어방법만 간단히 소개하겠다.
▲만약 break 코드가 없었더라면 "무한 반복"이라는 문자열이 무한대로 멈추지 않고 계속 출력될 것이다.
하지만 break라는 기능을 이용하면 위에서 아래로 순차적으로 진행되는 코드의 원리에 따라 "무한 반복"을 1회 출력 후 break로 인해 for문이 종료될 것이다.
'Java' 카테고리의 다른 글
[Java]반복문(part.3- do~while문) (0) | 2022.02.28 |
---|---|
[Java]반복문(part.2- while문) (0) | 2022.02.28 |
[Java]변수의 자료형 (part.3 char형과 boolean) (0) | 2022.02.26 |
[Java]제어문(Control Statement) - switch문 (0) | 2022.02.25 |
[Java]제어문(Control Statement) - if문 (0) | 2022.02.25 |