[Java] 반복문

🌈 m1naworld ·2022년 11월 13일
0

자바를 잡아! 👻

목록 보기
15/19
post-thumbnail

for문과 while문은 서로 변환이 가능하기 때문에 반복문을 작성할 때 어느 쪽을 선택해도 좋지만, for문은 반복 횟수를 알고 있을 때 주로 사용 하고, while문은 조건에 따라 반복할 때 주로 사용한다. while문과 do-while문의 차이점은 조건을 먼저 검사하느냐 나중에 검사하느냐일 뿐 동작 방식은 동일하다.


for문

주어진 횟수만큼 실행문을 반복
각각의 초기식, 조건식, 증감식은 생략 가능하다.
단, 조건식이 생략되면 무조건 참으로 인식하여 break문을 적절히 활용해야 한다.

초기화식 생략된 경우

// 예시

int i = 1;
for (; i<=100; i++){...}

조건식 생략된 경우

// 예시

for (int i=0; ; i++){
	sum += i;
    if(sum > 200){
    	break;
   } 
}

증감식 생략된 경우

// 예시

for (int i=0; i < 5; ){
	... 
    i = (++i) % 10; 
}

초기식, 조건식, 증감식 모두 생략된 경우: 무한루프

for(;;){...}

초기식, 증감식은 콤마(,)를 이용하여 여러개 선언이 가능

for (int i=0, j=100; i<=50 && j>=50; i++, j--) {...}

향상된 for문

for(타입 변수명: 배열 또는 컬렉션){
	// 배열 또는 컬렉션에 저장된 값이 매 반복마다 하나씩 순서대로 읽혀짐
}

JDK 1.5이상에서 가능하며, 배열처럼 여러 원소로 이루어진 집합의 모든 원소에 대해 특정 작업을 반복하기 위해 사용된다.

  • 장점 : 간편한, 가독성 좋은 코드 , 배열 인덱스 문제 해결(ArrayIndexOutOfBoundsException 예외를 피할 수 있음)
  • 단점: 인덱스를 사용하지 못함, 배열이나 ArrayList값을 사용할 순 있지만 절대 수정할 수는 없음

while문 / do-while문

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

while문: 조건문이 true일 경우 실행문 반복

while(조건문){
	
    // 실행문;
}

do-while문: 우선 실행문을 실행한 후, 조건문이 true일 경우 실행문 반복

do{ 
	// 실행문;

}while(조건문);


break문

반복문을 실행 중지 할 때 사용한다. 만약 반복문이 중첩되어 있을 경우 break문은 가장 가까운 반복문만 종료하고 바깥쪽 반복문은 종료하지 않는다. 중첩된 방복문에서 바깥쪽 반복문까지 종료시키려면 바깥쪽 반복문에 이름을 붙이고, 'break 이름'을 사용하면 된다. continue 또한 이름 적용이 가능하다.

// 바깥쪽 반복문 종료 예시 

public class BreakOutterEx{
	public static void main(String[] args){
		Outter: for(char upper='A'; upper<='Z'; upper++){
        	for(char lower ='a'; lower<='z'; lower++){
            System.out.println(upper + "-" + lower);
            if(lower == 'g'){
            	break Outter;
            }
         } 
      }
     System.out.println("프로그램 실행 종료");
   } 
}

continue문

반복문 블록 내부에서 continue문이 실행되면 for문의 증감식 또는 while문, do-while문의 조건식으로 이동한다. continue문은 반복문을 종료하지 않고 계속 반복을 수행한다는 점이 break문과는 다르다. 특정 조건을 만족하는 경우 continue문을 통해 그 이후의 문장을 실행하지 않고 다음 반복으로 넘어간다.



Ref.
책: 혼자 공부하는 자바
.java의 개발일기

profile
개발자로 사는 내 삶은 즐거워 👾

0개의 댓글