[JAVA]반복문 개념 정리 for, foreach,whlie, dowhlie문 사용법 및 예제
1. 반복문이란?
반복문은 프로그램의 진행을 조건에 따라 여러번 수행하는 문법을 말한다.
예를 들어 우리가 1000원을 가지고 있고 돈이 다 떨어질 때까지 100원짜리 사과를(읭..?) 산다고 가정해보자.
그러면 다음과 같이 코드를 짜야할 것이다.
(간단하게 나타내보았다)
int myMoney=1000;
사과 사는 코드(-100)
사과 사는 코드(-100)
사과 사는 코드(-100)
사과 사는 코드(-100)
사과 사는 코드(-100)
사과 사는 코드(-100)
사과 사는 코드(-100)
사과 사는 코드(-100)
사과 사는 코드(-100)
사과 사는 코드(-100)
사과구매를 종료합니다.
10번만 사도 같은 코드를 10번이나 써야하므로 상당히 귀찮은데
만약 10번이 아니라 100번이나 그 이상이라고 생각해보자.
상당히 번거로운 작업일 것이다.
아니면 사과 가격이 올라서 100원이 아니라 150원으로 바뀌었다면...?
하지만 반복문을 쓰면 아래와 같이 단순하게 나타낼 수 있다.
int myMoney=1000;
for(int i=0;i<10;i++){
사과사는 코드(-100)
}
사과구매를 종료합니다.
반복적인 코드를 여러번 넣게 되면 프로그램의 유지보수가 힘들어지는데 비해
위와 같이 짜면 아주 쉽게 유지보수를 할 수 있게된다.
이렇게 반복적인 코드를 줄일 수 있게 도와주는 문법 중 하나가 반복문이다.
2. for문
for문의 사용법은 다음과 같다.
for(초기화 영역;반복 조건;한바퀴 돈 후 수행할 로직){
반복할 내용 작성
}
//예시
for(int i=0;i<10;i++){
System.out.println(i);
}
for문의 괄호 안에 ; 기호를 기준으로 잘라서 보면 된다.
2.1. 초기화 영역
먼저 초기화 영역에서 반복에 사용할 문자를 초기화 해준다.
예시에서는 int i를 선언하고 0으로 초기화 해 주었다.
보통 관행적으로 여기에 사용하는 변수는 i, j,k 등을 사용하고는 한다.
2.2. 반복 조건 영역
다음으로 반복할 조건을 적어준다.
예시에서는 i값이 10보다 작을 때는 계속 반복문을 돌다가 10보다 커지는 순간 반복문을 탈출하게 되도록 작성하였다.
2.3. 한 바퀴 돈 후 수행할 로직
반복이 한 바퀴 돈 다음 수행할 내용을 적어준다.
일반적으로는 증감연산자인 i++ 이나 i--의 내용을 적어주게 된다.
2.4. 반복 내용
반복 내용에서는 내가 원하는 수행 내용을 작성하면 되는데
코드를 짜다보면 특정 조건일 때 반복을 중단하고 싶을 때가 종종 있다.
예를들면 i값이 5일때 반복을 중단하고싶다거나...
그러면 아래와 같이 break를 써주면 그자리에서 반복조건과 무관하게
가장 최근에 있는 반복문 하나를 중단하게 된다.
//break 예시
for(int i=0;i<10;i++){
if(i==5){
break;
}
System.out.println(i);
}
2.5. for문이 처리되는 순서
이 내용을 알아두면 향후 반복문을 사용할 때 도움이 된다.
일반적으로 for문을 컴퓨터가 처리하는 순서는
1) 맨 처음에 for문에 들어오면 초기화 수행.
2) 반복조건 확인 후 루프조건에 부합 시 반복할 내용 수행, 부합하지 않으면 반복문 탈출.
3) 한 바퀴 돈 후 수행할 로직(괄호 마지막 칸에 있는 내용)인 i++을 수행
4) 바뀐 i값으로 다시 반복조건 확인 후 루프조건 부합시 2번 내용 수행.
3. foreach문
반복문에서 조금 심화적인 개념이긴 한데 알아두면 요긴하게 쓸 데가 많다.
만약 배열이나 리스트가 있는 데 이 안의 요소들을 반복문을 돌면서 처리해야 할 내용이 있을 때
foreach를 쓰면 유용하게 쓸 수 있다.
만약 int형의 배열 arr이 있는데 이 배열의 요소중에 5라는 값이 있는지 검사하고 싶다고 생각해보자.
그러면 다음과 같이 코드를 짤 수 있다.
int[] arr={1,2,3,4,5,6,7,8,9,10};
for(int i:arr){
if(i==5){
break; //배열 안의 값이 5일 때 반복 중단.
}
}
반복을 돌리려 하는 대상이 리스트거나 배열일 때 foreach를 사용하면 코드가 간결해지고 편해지는 상황이 많으니
실제로 반복문을 사용해 볼 일이 생기면 한 번 사용해 볼 것을 권장한다.
4. while문
whlie문의 사용법은 다음과 같다.
whlie(반복 조건 작성){
반복할 내용
}
//예시
whlie(i<10){ //i가 10보다 작을 때 루프
if(i==5){
break;
}
System.out.println("i = "+i);
i++;
}
whlie문은 for문에 비해 문법은 간단하다.
반복 조건을 작성해주면 해당 조건이 참일때는 반복문 내부의 로직을 수행하고
참이 아니게 되면 whlie문을 빠져나오게 된다.
for문과 마찬가지로 반복을 중단하고 싶을 때는 break를 사용하면 된다.
다만 이 whlie문을 쓸 때 주의해야 할 점이 있는데
반복문을 빠져나올 조건을 잘못 쓰면 무한루프에 빠질 수 있다는 것이다.
예를 들면 위의 예시에서 i++을 빼먹었다던가...
무한루프에 빠지면 프로그램이 프리징되는 치명적인 현상이 있을 수 있으니
while을 빠져나올 수 있는 조건이 성립되는지 잘 따져보아야 한다.
5. do-whlie문
do-while문은 while문과 비슷하지만
whlie안의 조건과 관계없이 무조건 최초 한번은 내부 로직을 수행한다.
아래 내용을 보면 이해가 될 것이다.
do{
System.out.println("무조건 1번은 실행됩니다.")
}whlie(false);
위의 코드를 실제로 돌려보면 로그가 한번만 찍히고 끝나는 것을 볼 수 있다.
'Language > Java' 카테고리의 다른 글
[Java]클래스 제작과 객체 생성하기 예제 (0) | 2020.08.26 |
---|---|
[Java]객체 지향 프로그래밍의 기초-객체와 클래스의 개념 및 예제 (0) | 2020.08.26 |
[Java]네이버 번역 파파고 API 적용 및 예제 (0) | 2020.08.21 |
[Java]네이버 지역 검색 API 적용하는 방법 정리 (2) | 2020.08.20 |
[Java]조건문 if 와 switch문 개념 정리 및 예제 (0) | 2020.08.17 |