본문 바로가기
자바

[Java] 자바의 제어문1, 반복문

by 책 읽는 개발자_테드 2020. 12. 12.
반응형

[Java] 자바의 제어문1, 반복문 

 

유튜브에서 백기선님이 진행하는 온라인 스터디를 진행 중입니다. 아래는 스터디의 링크입니다.

www.youtube.com/watch?v=rPYhY5kFD5k

github.com/whiteship/live-study

 

이글은 제어문의 하위 분류인 조건문에 대하여 다룬 아래글과 이어집니다.

scshim.tistory.com/195

 

반복문

반복문은 어떤 작업(코드들)이 반복적으로 실행되도록 할 때 사용됩니다. 예를 들어 다음과 같이 정수 1부터 10까지 더하는 코드가 있다고 가정합니다.

int sum = 0;
sum = sum +1;
sum = sum +2;
sum = sum +3;
sum = sum +4;
sum = sum +5;
sum = sum +6;
sum = sum +7;
sum = sum +8;
sum = sum +9;
sum = sum +10;

 

이와 같이 긴 코드를 반복문을 이용하면 간결한 작성이 가능합니다. 다음은 반복문 중 하나인 for문을 사용한 예제입니다.

int sum = 0;
for (int i=1; i<=10;i++){
	sum = sum + 1;
}

 

반복문의 종류는 for문, while문, do-while문이 있습니다.

 

for문

반복문 중 하나인 for문의 실행 흐름은 다음과 같습니다.

 

1.초기화 식이 실행됩니다.

2.조건식을 평가해 true면 3.실행문을 실행하고, false면 for문 블록을 실행하지 않고 끝냅니다.

3.실행문이 모두 실행되면 4.증감식을 실행하고, 다시 2.조건식을 평가합니다.

조건식이 false가 나올 때까지 이를 반복합니다.

for( 1.초기화식; 2.조건식; 4.증감식 ){
	3.실행문;
}

 

다음은 for문을 통해 정수 1부터 10까지 더하는 코드입니다.

int sum = 0;
for (int i=1; i<=10;i++){
	sum = sum + j;
}

 

초기화식은 조건식과 실행문, 증감식에서 사용할 변수를 초기화하는 역할을 합니다. 초기화식이 필요없다면, 생략이 가능합니다.

int sum = 0;
int i = 1;
for ( ; i<=10;i++){
	sum = sum + i;
}

 

초기화식에 선언된 변수는 for문 블록을 벗어나면 사용할 수 없습니다.

for (int i=1; i<=10;i++){	
}
i = i+1; //오류 발생

 

초기화식과 증감식은 쉼표(,)로 구분하여 둘 이상 있을 수 있습니다. 

int sum = 0;
for (int i=1, int j=100; i<=10 && j<1 ;i++, j--){
	sum = sum + i + j;
}

 

while문

for문이 정해진 횟수만큼 반복한다면, while문은 조건식이 true일 경우에 계속해서 반복합니다. 조건식에는 비교 또는 논리 연산식이 주로 옵니다. 

 

실행흐름은 다음과 같습니다.

1.조건식을 평가한다. 평가 결과가 true이면,

2.실행문을 실행한다. 실행문을 모두 실행하면 다시 조건식으로 되돌아가 조건식을 다시 평가한다.

조건식이 false가 나올 때까지 이를 반복합니다.

while(1.조건식){
      2.실행문
}

 

다음은 while문을 통해 정수 1부터 10까지 더하는 코드입니다.

int sum=0;
int i=1;
while(i<=10){
	sum = sum +i;
	i++;
}

앞서 설명한 for문과 차이점은 초기화식을 선언할 수 없으므로, while문 시작전에 변수 i를 미리 선언했다는 점입니다. 

또한 증감식도 while문 내부에 선언합니다.

 

do-while문 

 

do-while문은 조건식에 의해 반복 실행한다는 점에서 동일하다. 하지만 while문은 시작할 때부터 조건식을 검사하여 블록 내부를 실행할지 결정하고, do-while문은 블록 내부의 실행문을 우선 실행시키고 실행 경과에 따라 반복 실행을 계속할지 결정한다.

do{
      1.실행문
}while(2.조건식)

 

다음은 do-while문을 통해 정수 1부터 10까지 더하는 코드입니다.

int sum=0;
int i=1;

do{
	sum = sum +i;
	i++;
}while(i<=10)

 

break문

break문은 이전에 작성한 조건문에 대한 글(scshim.tistory.com/195)의 switch문에서 등작했었습니다.

break문은 for문, while문, do-while문에서 모두 사용할 수 있으며, 반복문의 실행을 중지할 때 사용됩니다.

 

아래는 반복문을 i의 값이 5를 넘으면 중지하여 정수를 1에서 5까지만 더하는 코드입니다.

int sum=0;
int i=1;
while(i<=10){
	if(i>5){
		break;
	}
    
	sum = sum +i;
	i++;
}

 

만약 반복문이 중첩되어 있다면 break문은 가장 가까운 반복문만 종료하고 바깥쪽 반복문은 종료시키지 않습니다.

중첩된 반복문에서 바깥쪽 반복문까지 종료시키려면 바깥쪽 반복문에 이름을 붙이고 "break 이름;"을 사용하면 됩니다.

        int sum=0;
        int i=1,j=1;
        first: while(i<=10){
            while(j<=10) {
                if (j > 5) {
                    break first;
                }
                sum = sum + j;
                j++;
            }
        }

 

continue문

continue문은 실행되면, 반복문의 블록 내부에서 for문의 증감식 또는 while의 조건식으로 이동하는 역할을 합니다.

다음은 정수 1부터 10까지 홀수만 더하는 코드입니다.

int sum=0;
int i=1;
while(i<=10){
	if(i%2==0){
	   continue;
	}
	sum = sum +i;
	i++;
}

특정 조건을 만족하는 경우 continue문을 실행해서 그 이후의 문장을 실행하지 않고 다음 반복으로 넘어갑니다.

 

 

출처: 이것이 자바다

반응형

댓글