본문 바로가기

STUDY/국비과정

[JAVA 웹 개발 공부] 국비지원 8일차 - 중첩 for문, break문, switch문, 예제 문제

중첩 for문

 

if문 안에 또 다른 if문을 넣을 수 있는 것처럼, for문 안에 또 다른 for문을 포함시키는 것도 가능하다.

중첩 for문은 반복문속에 반복문이 있는 구조로 외부 반복문과 내부 반복문의 변수의 값 변화에 유의해야 한다.

ex) 구구단 출력하기

안쪽 for문은 단을 출력하며, 바깥쪽 for문은 안쪽 for문을 2단부터 9단까지 8번 반복해서 출력한다.

바깥쪽 for문이 한번 반복될 때마다 안쪽 for문의 모든 반복이 끝나고서야 바깥쪽 for문의 다음 반복으로 넘어간다.

break문

 

1. break문

break문은 루프 내에서 조건식의 판단 결과와 상관없이 반복문을 완전히 빠져나가고 싶을 때 사용한다.

반복문 안에서 break문을 만나면 반복문을 빠져나가서 반복문 다음으로 이동하게 된다.

2. 반복문 제어

break;

break문은 근접한 단 하나의 반복문만 벗어날 수 있기 때문에, 여러 개의 반복문이 중첩된 경우에는 break문으로 중첩 반복문을 완전히 벗어날 수 없다.

3. 중첩된 반복문 제어

label:

break label;

하나 이상의 반복문을 벗어나려면 반복문에 이름을 붙여주고, break문에 반복문 이름을 지정해주면 하나 이상의 반복문도 벗어날 수 있다.

continue문

 

continue문은 반복문 내에서만 사용될 수 있으며, 반복이 진행되는 도중에 continue문을 만나면 반복문의 끝으로 이동하여 다음 반복으로 넘어간다.

for문의 경우 증감식으로 이동하며, while문의 경우 조건식으로 이동한다.

주로 if문과 함께 사용되어 특정 조건을 만족하는 경우에 continue문 이후의 문장들을 수행하지 않고 다음 반복으로 넘어가서 계속 진행하도록 한다.

continue문은 반복문 전체를 벗어나지 않고 다음 반복을 계속 수행한다는 점이 break문과 다르다.

switch문

 

1. switch문

if문은 조건식의 결과가 참과 거짓, 두 가지 밖에 없기 때문에 경우의 수가 많아질수록 else-if를 계속 추가해야하므로 조건식이 많아져서 복잡해지고, 여러 개의 조건식을 계산해야하므로 처리시간도 많이 걸린다.

이러한 if문과 달리 switch문은 단 하나의 조건식으로 많은 경우의 수를 처리할 수 있고, 표현도 간결하므로 알아보기 쉽다. 그래서 처리할 경우의 수가 많은 경우에는 if문 보다 switch문으로 작성하는 것이 좋다.

switch문은 조건식을 먼저 계산한 다음, 그 결과와 일치하는 case문으로 이동한다.

이동한 case문 아래에 있는 문장들을 수행하며, break문을 만나면 전체 switch문을 빠져나가게 된다.

switch (조건식) {

     case 값1 :

          // 조건식이 결과가 값1과 같을 경우 수행될 문장들

          // ...

          break; // switch문을 벗어난다.

     case 값2 :

          // 조건식이 결과가 값2과 같을 경우 수행될 문장들

          // ...

          break;

     default :

          // 조건식의 결과와 일치하는 case문이 없을 때 수행될 문장들

          // ...

}

 

2. switch문의 제약조건

(1) switch문의 조건식 결과는 정수 또는 문자열이어야 한다.

(2) case문의 값은 정수 상수만 가능하며, 중복되지 않아야 한다.

예제 문제

 

<예제 01>

*

**

***

****

*****

<예제 02>

*****

****

***

**

*

<예제 03>

        *

      **

    ***

  ****

*****

<예제 04>

        *

      ***

    *****

  *******

*********

<예제 05>

*********

  *******

    *****

      ***

        *

<예제 06>

2 ~ 100 사이의 모든 소수를 찾아 출력하기

(다른풀이법)