반복문 이란?
반복문은 하나의 수행문 또는 중괄호 범위 내에 있는 모든 수행문을 반복할 수 있게 하는 것을 의미, 반복의 끝을 어떻게 설계할 것인가가 중요하다. 반복문은 영어로 루프(loop) 반복문을 수행하는 것을 루프가 돈다 라고 표현한다.
ㅇ 반복횟수가 정해진 경우에는 for문을 사용하는 것이 좋다. 수행문을 한번 이상 사용해야 하는 경우 do-while이 적합하다. 이 두 경우 외에 조건의 참,거짓에 따라 반복문이 수행하는 경우에는 while문을 사용
참인 경우 계속 돌아가라는 것이기 때문에 반복 해야 하는 수가 정해지지 않은 경우 while문을 쓰는 것이 좋다.( while과 break를 같이 사용하면 중간에 멈추는 것이 가능)
ㅇ 반복문의 종류
- for
- while
- do while
ㅇ 반복문과 함께 쓰이는 명령어
- break
break문은 반복문 내에서 쓰이며, 강제적으로 해당 반복문을 빠져나갈 때 쓰이는 제어문
가장 가까운 반복문을 빠져나간다. 다중 for문을 사용하는 경우 가장 가까운 반복문을 탈출한다.
switch문, 반복문에 사용되며, 해당 switch문이나 반복문을 탈출하라는 의미로 쓰인다
break는 if문만 가지고는 사용할 수 없다. 반복문 안에 있는 if문을 멈추는 경우에 사용 할 수 있다.
- continue
반복문 안에서 continue문을 만나면 이후의 문장은 수행하지 않고, for 문의 처음으로 돌아가 증감식을 수행.
반복문에서만 사용되며, 다음 반복문의 조건식이나 증감식을 수행하라는 의미
반복문 안에서 특정 상황을 제외 하기 위해서 사용
(반복수행 시킬 명령어를 특정상황에서는 제외 시키고자 할 때 사용.)
특정 문장이나 여러 문장들을 건너뛰고자 할 때 유용하게 쓰인다.
break문과 비교하여 다른 점이 있다면 "반복문을 빠져나가느냐, 그렇지 않느냐"
continue문은 반복문을 빠져나가지 않으며 반복문 내에서 continue문을 만났을 때 당시 수행중이던 반복 회차는 중단되며 다음 반복 회차를 수행하기 위해 반복문의 조건식으로 제어가 넘어간다.
for문
반복횟수를 관리할 수 있기 때문에 for문을 자주 사용한다. for문은 배열과 함께 자주 사용
ㅇ for 문의 사용하는 형식
for문은 반복문으로 특정한 명령들을 원하는 만큼 반복적으로 처리할 때 사용하는 제어문
for(초기식 ; 조건식 ; 증감식)
{
반복시킬 명령어1;
반복시킬 명령어2;
}
초기식 : 가장 먼저 수행하는 부분, 두 번 다시 수행하지 않는다
조건식 : 초기식 다음으로 수행하는 부분, 루프(loop)가 돌 때마다 한번씩 비교하여 반복을 수행해야 할지 반복을 벗어나야 할지를 결정한다.
증감식 : 루프를 수행할 때 마다 조건식에서 비교하기 전에 항상 수행하며 조건식에서 사용되는 변수값을 증가시키거나 감소시켜 루프를 원활하게 수행하거나 무한 루프를 피하는데 바탕이 되는 부분
- 초기식, 조건식 , 증감식에 C++처럼 ,로 2개씩 넣을 수는 없다.
-----------------------------------------------------------
for( 항1 ; 항2 ; 항3 )
{
반복 시킬 명령어(들)
}
항1 항2 항3은 반복 수행 시키고자 하는 조건식에 해당하는 값이나 수식으로 표현한다.
항1 : 반복 시킨 변수의 처음 시작 값(초기값)을 정해준다.
항2 : (최종/만족하는) 반복시킬 조건식을 써준다.
항3 : 그 변수의 증감식을 써준다.
*반드시 ;이 2개가 와야 한다.
예를 들어
for ( int i = 1 ; i <= 3 ; i=i+1)
이건 i(변수)에 초기값 1을 대입하고, i가 3이 될 때까지 1씩 증가하게 반복문을 실행하라는 것
for문 안에서 i를 선언하는 경우 for문 밖에서는 i를 쓸 수 없다.
(int i = 1)
만약 for문 밖에서도 i를 사용하고 싶다면 for문 위에 int i;를 써야 한다.
ㅇ for문 요소 생략
- 초기화식 생략 : 다른 곳에서 변수가 초기화 되어 중복으로 초기화할 필요가 없을 때 초기화 부분을 생략 할 수 있다.
for ( ; i<5 ; i++) - 조건식 생략 : 어떤 연산 결과 값이 나왔을 때 바로 for문의 수행을 멈추려면 조건식을 생략하고 for문 안에 if문을 사용하고 break를 한다.
for( int i=0 ; ; i++) - 증감식 생략 : 증감식의 연산이 복잡하거나 다른 변수의 연산 결과 값에 좌우된다면 증감식을 생략하고 for문 안에 쓸 수 있다.
for(int i = 0 ; i<5 ; ) - 요소 모두 생략 : 무한 반복
for( ; ; )
ㅇ 다중 for문 / 중첩 for문
반복문 안에서 또 반복문들이 들어가는 것
for문 안에 for문이 또 들어간다.
for (초기식 1 ; 조건식1 ; 증감식1)
{
for(초기식 2 ; 조건식2 ; 증감식2)
{
명령어2;
}
명령어1;
}
명령어3;
for문은 사실 쉽지 않다. 중복 for문을 보기만 하면 쉽게 적용가능한 것 같고 이해가 된 것 같다 하지만, 실제로 프로그램을 짜다 보면 헷갈리는 부분이 한두가지가 아니다. 또한 반복문 for와 while은 많은 프로그램을 설계 시 사용 하기 때문에 기초를 탄탄히 해 놔야 한다.
그렇기 때문에 예제를 정말 많이 해봐야 한다.
while문
while문은 for문과 유사하며 또한 특정한 명령들을 반복적으로 처리할 목적으로 사용
조건 비교에 만족할 때에만 반복 처리를 할 수 있으며 구성과 동작은 다음과 같다.
조건식에 참여하는 변수의 값이 변화를 가져오지 않으면 무한 루프에 빠진다는 것에 주의해야 한다. 즉, while문의 특징은 '선 비교, 후 처리'에 있는데, 이는 조건비교가 먼저 오기 때문에 첫 조건비교에서 false를 받게 되면 한번도 수행하지 않을 수 있다는 특징이 생길 수 있다.
while문은 아래와 같이 조건식이 참인 경우 반복 되기 때문에, 계속 돌아가게 하기 위해서는 while(true)라고 쓴다.
while문 사용하는 형식
변수 선언
while(조건식)
하고자 하는 명령어
변수 증감식
int i = 1;
while ( i <= 3)
{
System.out.println("Hello");
i++;
}
ㅁ foreach
for (type var: iterate)
{ body-of-loop }
ㅁ do while문
do ~ while문의 특징은 '선 처리, 후 비교'
while문은 조건비교부터 먼저하기 때문에 처음부터 조건에 만족하지 않을 경우, 한 번도 수행하지 않을 수 있지만 do ~ while문은 '선 처리, 후 비교'이므로 조건비교에서 불만족한 경우가 될지라도 처리를 먼저하고 조건비교가 이루어지므로 최소 한번은 수행하게 되어 있다.
사용자의 상황에 따라서 while문을 하나도 안 타는 경우가 있다.
하지만, do~while문은 조건에 부합하지 않더라고 한번은 해봐(do)라는 뜻의 문
while문은 처음부터 조건을 만족하지 않는 상황이라면 loop를 한번도 동작하지 않는다. 그러나 do~while문은 처음부터 조건을 만족하지 않는 상황이라도 적어도 한번은 loop를 수행한다.
(변수 선언)
do
{
(하고자 하는 문자식)
변수의 증감 식
}
while (조건문);
'Java | spring > Java Basic' 카테고리의 다른 글
java String 기본 메소드 활용 예제 (0) | 2019.05.07 |
---|---|
call by value 값호출 VS 참조 호출 call by reference (0) | 2019.05.07 |
자바 기초, 비교문 if문과 switch문 (0) | 2019.05.03 |
자바 기초, 배열 정리 (0) | 2019.05.03 |
자바 기초, 연산자 총정리 (0) | 2019.05.03 |
댓글