[코드스테이츠 백엔드 44기 SEB BE] 7일차

오태호·2023년 2월 21일
0

코드스테이츠

목록 보기
7/22
post-thumbnail

반복문

  • 코드들이 반복적으로 실행되도록 할 때 사용
  • 반복문의 종류
    • for문, while문, do-while문
      • for문 : 반복 횟수를 알고 있을 때 사용
      • while문 : 조건에 따라 반복할 때 사용

for문

  • 조건식이 참인 동안 주어진 횟수만큼 반복적으로 실행문 수행
for(초기화; 조건식; 증감식) {
    실행문
}
  • 초기화

    • for문이 시작할 때 최초 한 번만 수행
    • 사용할 변수의 초기값 설정
  • 조건식

    • 반복 여부를 결정하는 조건
      • true라면 실행문을 실행
      • false라면 더 이상 블록을 실행하지 않고 끝남
  • 증감식

    • 반복 횟수를 결정하는 규칙
    • 변수에 값을 더하거나 빼는 등 수행 방식을 지정
  • for문

    • 조건식을 충족하는 동안 초기화식부터 시작해서 증감식의 규칙을 따라서 실행
      • 만약 조건을 충족하지 않으면 실행문을 실행하지 않고 끝남
      • 초기화식이 필요 없다면 생략할 수 있고, 증감식이나 초기화식이 둘 이상이 될 수 있음

향상된 for문(Enhanced for문)

  • 배열 및 컬렉션 객체를 더 쉽게 처리할 목적
  • 반복 실행을 위한 카운터 변수와 증감식을 사용하지 않음
  • 배열 및 컬렉션 항목의 개수만큼 반복하고 자동적으로 for문을 빠져나감
int[] nums = {1, 2, 3, 4};
for(int num : nums) {
    System.out.println(num);
}

while문

  • 조건식이 true일 경우 계속해서 반복
  • 초기화와 증감식은 필요 없다면 생략 가능
  • for문과 초기화, 증감식의 위치만 다를 뿐 상호 대체가 가능
초기화;
while(조건식) {
    실행문; // 조건식이 참인 동안 실행
    증감식;
}
  • 조건식에는 boolean 변수나 true / false 값을 산출하는 어떠한 연산식이든 올 수 있음
    • 만약 조건식에 true를 사용하면 무한 루프를 돌게 됨
      • while문을 빠져 나가기 위한 탈출 코드가 필요함
      • Ex. break문

do-while문

  • 조건식에 의해 반복 실행
  • 블록 내부의 실행문을 우선 실행시키고 실행 결과에 따라서 반복 실행을 계속 할지 결정
do {
    실행문
} while(조건식)

break문

  • 반복문을 실행 중지할 때 사용
  • switch문에서도 break문을 사용하여 switch문을 종료
for(...) {
    break;
}

while(...) {
    break;
}
  • 반복문이 중첩되어 있을 경우 break문은 가장 가까운 반복문만 종료
    • 바깥쪽 반복문에는 영향을 끼치지 않음
Outer : for(int idx = 0; idx < 5; idx++) {
    for(int idx2 = 0; idx2 < 3; idx2++) {
        System.out.println(idx + ", " + idx2);
        if(idx == 3) {
            break Outer;
        }
    }
}
  • 바깥 for문에 Outer라는 라벨을 붙이고 이를 break문에 사용
    • 레이블문을 쓰면 중첩된 for문 안에서도 바깥쪽 for문까지 완벽히 빠져나올 수 있음

continue문

  • 반복문에서만 사용
  • 블럭 내부에서 continue문이 실행되면 for 문의 증감문 혹은 while, do-while 문의 조건식으로 이동하여 작동
  • continue 문 vs break 문
    • 반복문 종료 여부
    • continue 문
      • 반복문을 종료하지 않고 다음 차례로 넘어가 계속 반복을 수행
    • break 문
      • 반복문을 종료
profile
자바, 웹 개발을 열심히 공부하고 있습니다!

0개의 댓글