JAVA

제어문

선예림 2022. 8. 2. 09:17

1) 조건문

 

제어문(control flow statements)

 

자바 프로그램이 원하는 결과를 얻기 위해 프로그램의 순차적인 흐름을 제어해야 하는 경우가 생기는데

이 때 사용하는 명령문

중괄호({})로 둘러싸여 있으며, 이러한 중괄호 영역을 블록(block)이라고 함

 

조건문(conditional statments)

 

1. if 문
2. if / else 문
3. if / else if / else 문
4. switch 문

 

if 문

 

조건식의 결과가 참(true)이면 주어진 명령문을 실행하고, 거짓(false)이면 아무것도 실행하지 않음

if (조건식) {

    조건식의 결과가 참일 때 실행하고자 하는 명령문;

}

 

if / else 문

 

else문은 주어진 조건식의 결과가 거짓(false)이면  주어진 명령문을 실행

if (조건식) {

    조건식의 결과가 참일 때 실행하고자 하는 명령문;

} else {

    조건식의 결과가 거짓일 때 실행하고자 하는 명령문;

}

 

if / else if / else 문

 

if (조건식1) {

    조건식1의 결과가 참일 때 실행하고자 하는 명령문;

} else if (조건식2) {

    조건식2의 결과가 참일 때 실행하고자 하는 명령문;

} else {

    조건식1의 결과도 거짓이고, 조건식2의 결과도 거짓일 때 실행하고자 하는 명령문;

}

 

삼항 연산자에 의한 조건문

 

간단한 if / else 문을 삼항 연산자를 이용해 간결하게 표현할 수 있음

 

조건식 ? 반환값1 : 반환값2

 

switch 문

 

 if / else 문과 마찬가지로 주어진 조건 값의 결과에 따라 프로그램이 다른 명령을 수행하도록 하는 조건문

switch (조건 값) {

    case 값1:

        조건 값이 값1일 때 실행하고자 하는 명령문;

        break;

    case 값2:

        조건 값이 값2일 때 실행하고자 하는 명령문;

        break;

    ...

    default:

        조건 값이 어떠한 case 절에도 해당하지 않을 때 실행하고자 하는 명령문;

        break;

}

 

 

2) 반복문

 

반복문(iteration statements)

 

프로그램 내에서 똑같은 명령을 일정 횟수만큼 반복하여 수행하도록 제어하는 명령문

 

1. while 문

2. do / while 문

3. for 문

4. Enhanced for 문

 

while 문

 

특정 조건을 만족할 때까지 계속해서 주어진 명령문을 반복 실행

조건식의 검사를 통해 반복해서 실행되는 반복문을 루프(loop)라고 함

while 문 내부에 조건식의 결과를 변경하는 변경문이 존재하지 않을 때 프로그램이 영원히 반복되는 무한 루프(infinite loop)에 빠지게 됨 -> 반드시 피해야 하는 상황

 

while (조건식) {

    조건식의 결과가 참인 동안 반복적으로 실행하고자 하는 명령문;

}

 

do / while 문

 

루프를 한 번 실행한 후 조건식을 검사

조건식의 결과와는 상관없이 무조건 한 번은 루프를 실행

do {

    조건식의 결과가 참인 동안 반복적으로 실행하고자 하는 명령문;

} while (조건식);

 

for 문

 

while 문과는 달리 자체적으로 초기식, 조건식, 증감식을 모두 포함하고 있는 반복문

for (초기식; 조건식; 증감식) {

    조건식의 결과가 참인 동안 반복적으로 실행하고자 하는 명령문;

}

 

 

Enhanced for 문

 

JDK 1.5부터 Enhanced for 문이라는 반복문이 추가됨

컬렉션 프레임워크와 배열에서 유용하게 자주 사용됨

 

 

3) 기타 제어문

 

루프의 제어

 

continue 문과 break 문은 일반적인 루프의 흐름을 사용자가 직접 제어할 수 있도록 도와줌

 

continue 문

 

루프 내에서 사용하여 해당 루프의 나머지 부분을 건너뛰고, 바로 다음 조건식의 판단으로 넘어가게 해줌

// 1부터 100까지의 정수 중에서 5의 배수와 7의 배수를 모두 출력하는 예제
for (int i = 1; i <= 100; i++) {

    if (i % 5 == 0 || i % 7 == 0) {

        System.out.println(i);

    } else {

        continue;

    }

}

 

break 문

 

루프 내에서 사용하여 해당 반복문을 완전히 종료시킨 뒤, 반복문 바로 다음에 위치한 명령문을 실행

// 1부터 100까지의 합을 무한 루프를 통해 구하는 예제
int num = 1, sum = 0;

 

while (true) { // 무한 루프

    sum += num;

    if (num == 100) {

        break;

    }

    num++;

}

System.out.println(sum);

 

 

 

출처 : http://www.tcpschool.com/