반복문

쌩 초보의 개발로그·2022년 4월 13일
0

자바 공부

목록 보기
10/10
post-thumbnail

반복문의 문법

반복문의 문법은 몇 가지가 있다. 각각의 구문은 서로 대체 가능하기 때문에 상황과 취향에 따라서 선택해서 사용하자.

while 문

while문의 형식은 아래와 같다

while(조건){
      반복 실행 영역
      }

while문의 예제를 한번 살펴보자.

public class blog {
    public static void main(String[] args) {
        while(true){
            System.out.println("Hi Apple!");
        }
    }

}

위의 예제를 실행을 하게 되면 Hi Apple! 이 무한대로 반복되며 또 반복되는 현상을 볼 수 있다.
조건문이 true일때 반복문을 끊임 없이 진행하기 때문이다.

그러면 조건을 false로 만들어서 한번 진행 해보자.

public class blog {
    public static void main(String[] args) {
        while(false){
            System.out.println("Hi Apple!");
        }
    }

}

위의 코드는 아예 실행조차 되지않게 컴파일 에러가 나게 되며 실행을 하게되면 java: unreachable statement 라는 에러가 뜨게 된다.

그 이유는 조건이 false이기 때문에 반복문 자체가 실행이 되지 않기 때문이다.

여기서 true와 false는 반복의 종료 조건이 되는데, 반복문에서 종료 조건을 잘못 지정하면 무한 반복이 되거나, 아예 실행이 되지 않는것을 볼 수 있다.

그러면 조건문에다가 할당량을 책정을 한 다음 실행을 시켜보면 어떻게 되는지 한번 봐보자.


public class blog {
    public static void main(String[] args) {
        int i = 0;

        while(i<10){
            System.out.println("Hi Apple!");
            i++;
        }
    }

}

위의 코드처럼 변수 i의 값을 0을 준 후에 i의 값이 10보다 작다면 true, 크다면 false가 되게 끔 만들어 준 후 i++을 사용하여 반복문이 실행 될때 마다 i 의 값에 1씩 더하면서 반복문의 끝에 도달하면 반복문을 재호출을 하며 while문에 주어진 조건식을 계속 재 확인 한다.
이때 i<10의 값을 검수하여 10이 주어지면 while 반복문이 중지를 하게 되며 Hi Apple! 이 10번만 출력되는 것을 살펴 볼 수 있다.

for 문 (자주쓰임)

while문을 보면 반복의 횟구를 지정하기 위해서 변수 i의 값을 초기화하고, while문 안에서 i의 값을 증가시키고 있다.
즉 코드가 산만해 질 수 있다는 뜻이다.
반복문에서 자주 사용하는 이러한 패턴을 문법적인 형태를 만든 것이 for문이다.
for문은 특정한 횟수만큼 반복 실행을 하는 경우에 자주 사용된다.

for문과 while문은 서로 대체가 가능하다. 취향에 따라 선택을 하면 된다.

for문의 형식을 살펴보자.

for(초기화; 종료조건; 반복실행){
   반복적으로 실행될 구문
   }

예제로 살펴보자

public class blog {
    public static void main(String[] args) {
        for(int i=0 ; i<10; i++){
            System.out.println("Hi Apple!" + i);
        }
    }

}

위의 예제를 실행시키면

Hi Apple!0
Hi Apple!2
.
.
.
Hi Apple!9

까지 답이 나오는것을 볼 수 있다.
(자바는 0부터 숫자를 카운트한다.)

for문의 괄호 안에는 반복의 종료 조건이 들어온다.
종료 조건은 크게 3개의 부품으로 구성되는데 아래와 같다.

ⓐ 초기화 : 반복문이 실행될 때 1회 실행된다.
ⓑ 종료조건 : 초기화가 실행된 후에 종료조건이 실행된다. 종료조건의 값이 false일 때 까지 반복문의 중괄호 구간의 코드가 반복 실행된다.
ⓒ 중괄호 구간의 실행이 끝나면 반복 실행이 실행된다. 일반적으로 이 곳에 i++와 같이 변수를 증가시키는 로직이 위치하며 이것이 실행된 후에 종료조건이 실행된다. 즉 종료조건이 false가 될때 까지 이 과정이 반복된다라고 볼 수 있다.

반복문이 없다면?

반복문이 없다면 위처럼 for이나 while문을 사용해 10줄 이내로 Hi Apple!을 반복 호출을 할 수 있지만, 반복문을 사용하지 않는다면

System.out.println("Hi Apple!0");
System.out.println("Hi Apple!1");
.
.
System.out.println("Hi Apple!9");

하나하나 출력을 해야 하기 떄문에 로직구문이 길어지게 된다.

반복문을 사용하게 된다면

public class blog {
    public static void main(String[] args) {
       int i = 0;
       
       while(i<10){
           System.out.println("Hi Apple!" + i);
           i++;
       }
    }

}

식으로 간단하게 줄일 수 있다.

반복문의 제어

break

반복작업을 어느 정도에서만 할당을 한 후 중단을 시키고 싶다면 break 를 사용하면 된다.
예제를 한번 살펴보자.

public class blog {
    public static void main(String[] args) {
       for(int i=0 ; i<10 ; i++){
           if (i == 5)
               break;
           System.out.println("Hi Apple" + i);
       }
    }

}

위의 예제를 실행 하게 된다면

Hi Apple0
Hi Apple1
Hi Apple2
Hi Apple3
Hi Apple4

가 답으로 나오게 된다 예제문을 살펴본다면 중간에 반복조건 i<10 으로 10개 까지 진행을 하도록 조건문을 만들어 놨지만 if문을 사용하여 어느정도에서 도달을 하였을 때 break; 를 사용해 반복문이 중단을 하게 만들었다.

반복문 내에서 반복문이 break를 만났을때 그 즉시 반복문이 중단 되게 된다.

continue

public class blog {
    public static void main(String[] args) {
       for(int i=0 ; i<10 ; i++){
           if (i == 5)
           continue;
           System.out.println("Hi Apple" + i);
       }
    }

}

위의 예제에서 break와 비교해 바뀐것을 보면 break -> continue 로 바뀐것을 볼 수 있다.

그럼 결과도 한번 살펴보자.

Hi Apple0
Hi Apple1
Hi Apple2
Hi Apple3
Hi Apple4
Hi Apple6
Hi Apple7
Hi Apple8
Hi Apple9

결과는 다음과 같이 나왔지만 중간에 5가 없는것을 확인 할 수 있다.
왜 그럴까?
i의 값이 5가 되었을 때 실행이 중단이 되었기 때문이다.
continue 구문은 명령이 나타나는 이후의 로직을 실행하지 않도록 한다. 하지만 반복문 자체를 중단하는 것이 아니고 다시 반복문이 실행이 된다.

반복문의 중첩

반복문 내에는 다시 반복문이 나올 수 있다.
예제를 통해 바로 살펴보자.

public class blog {
    public static void main(String[] args) {
       for(int i=0 ; i<10 ; i++) {
          for(int j=0 ; j<10 ; j++){
              System.out.println(i + "" +j);
          }
       }
    }

}

위의 예제를 실행하게 되면

00
01
02
.
.
.
98
99

까지 답이 나오게 된다. 그 이유는 반복문 안에 또 반복문을 넣어서 i와 j를 더했기 때문이다.

profile
안녕하세요 쌩 초보 장휘주 입니다. 열심히 하는 개발자가 될게요.

0개의 댓글