1-10. 반복문

백종석·2022년 5월 18일
0

자바 문법 뽀개기

목록 보기
10/17
post-thumbnail

1) 반복문

  • 현재 100명의 학생들 점수의 평균을 구해야 하는 상황에 쳐해있습니다! 100명의 학생의 점수를 일일히 더해서 평균을 낼 경우 더하는 연산과정을 하나하나 하기에는 너무나 오래걸립니다. 그렇다면 이렇게 단순, 반복의 과정을 간단하게 할 수는 없을까요? 그 방법이 바로 반복문입니다!
  • 반복문에는 대표적으로 for 문과 while 문 그리고 do ~ while 문이 있습니다. 하나씩 살펴보도록 하죠.

for문

  • for문의 형식은 다음과 같습니다. 초기값이 조건식에 위배되지 않을 경우 실행 코드를 한 바퀴 돌게 됩니다. 이후 증감식을 통해 얻어진 값으로 다시 한번 조건식에 위배되는지 확인합니다. 만약 위배되지 않을 경우 이전 과정을 반복하며 위배될 경우에 반복문이 끝납니다.
for(초기값 ; 조건식 ; 증감식){
	실행 코드 블럭
}
  • 이번에도 예제를 보며 한번 익혀보도록 하죠.
int sum = 0;

for (int i = 0; i < 10; i++) {
sum += (i + 1);
}
System.out.println(sum);
  • 1부터 10까지의 합을 구하는 예제입니다. 변수 i는 1부터 10까지 변할 때까지 1씩 더해집니다. i가 증감식에 의해 11이 되면 조건문에 위배되기 때문에 더이상의 반복문 실행은 진행 되지 않으며 출력됩니다.

for - each문

  • 위 형식의 for 반복문 이외에도 아래와 같은 for-each문을 작성할 수도 있습니다. 앞서 배운 배열이나, Collection등에 사용이 가능합니다.
  • 이번에는 예제를 바로 확인하면서 익히도록 하겠습니다
for (String day : days) {
	System.out.println(day);
}

👉 배열의 값들이 하나씩 출력되었을 것입니다!. 즉, for-each문은 배열의 값들을 하나하나 변수에 담아서 출력한다고 생각하시면 됩니다!

while문

  • while문의 형식은 for문과는 사뭇 다릅니다.
while(조건식){
	실행 코드 블럭
}
int i = 0;
int sum = 0;
while (i < 10) {
	sum += i + 1;
	i += 1;
}
System.out.println(sum);
  • 위의 for 반복문과 똑같은 결과를 반환하는 예제입니다. i가 1,2,3,이렇게 증가하다 11이 되면 조건식에 부합하지 않기 때문에 while 반복문이 종료되고 출력이 되는것이죠!

💡 만약, i+=1; 코드가 없다면 어떻게 될까요? i가 11이상이 되지 못하기 때문에 while문을 벗어나지 못하고 계속 반복될 것입니다. 이것을 무한 루프라고 합니다. while문을 작성할 때는 로직이 무한루프 상황에 빠지는지 한 번은 확인하셔야 합니다.

👉 여기서 잠깐! 앞장의 switch문에서 잠깐 언급한 break를 알아보겠습니다. 바로 아래 예제를 한번 확인해보죠.

int i = 0;
while (i < 10){
	if (i==5){
		break;
	}
	i += 1;
}
System.out.println(i);
  • 출력값이 무엇이 나오나요? 네! 바로 5가 나옵니다. while문 내부에 if문을 확인하면 '변수 i가 5일 경우 break를 한다' 라는 것을 확인하실 수 있습니다. 즉, break는 반복문을 더 이상 실행하지 않고 끝내는 역할을 한다는 것을 알 수 있습니다.

👉 break와는 다르게 반복문을 계속 진행하는 것도 있습니다. 바로 continue라는 것입니다. 반복문을 진행하다가 continue가 있을 경우, 다시 반복문 코드 블럭의 처음 부분으로 돌아가서 진행합니다. 글로만 읽었을 때는 이해가 잘 안되시죠? 예제를 보면서 한번 이해를 해보도록 합시다!

for(int i=0;i<10;i++){
	if (i==5){
		continue;
	}
	System.out.println(i);
}
  • 출력을 해보면 값이 어떻게 나오나요? 숫자 5만 빼고 0부터 9까지 출력이 됩니다. 즉, continue가 있을 경우 아래의 코드를 실행하지 않고 다시 반복문의 시작 부분으로 돌아가는 것입니다!

do-while문

  • while문을 봤다면 이번에는 do-while문을 알아볼 차례입니다. do-while문과 while문의 차이가 무엇일까요? 아래 예제를 통해 알아보겠습니다.
int i = 1;
int result = 0;
do {
	result += i;
    i += 1;
} while (i < 2);
System.out.println(result);
  • 이상합니다.. while문의 조건에는 변수 i가 2보다 작아야한다고 되어있는데, result변수에는 변수 i의 값 1이 더해져서 출력됩니다.
  • 바로 여기서, do-while문과 while문의 차이가 나타납니다. while문은 조건식에 부합할 경우 코드 블럭을 실행하지만, do-while문은 일단 코드 블럭을 무조건 한번 실행한 후, while문의 조건을 비교합니다.
  • 즉, while문의 조건을 확인하기 이전에 do 내부의 코드블럭을 한 번 시행한 후, 그 이후에는 while문의 조건에 일치하지 않으므로 더이상의 실행은 하지않고 출력을 하게 되는 것입니다.
profile
항해중인 우당탕탕 코린이

0개의 댓글