[JAVA] 제어문과 제어 키워드

김나우·2021년 12월 31일
0

Java

목록 보기
2/15

참고 도서
Do it 자바 완전정복

제어문

프로그램은 기본적으로 소스 코드를 위에서부터 차례대로 1줄씩 처리한다. 프로그램을 작성
하다 보면 이런 처리 순서를 의도적으로 바꿔야 할 때가 있는데, 이 역할을 수행 하는 것이
바로 '제어문' 이다

제어문의 개념

제어문과 제어 키워드를 이용하면 프로그램의 실행 순서를 다양한 방법으로 제어할 수 있다.
즉, 제어문은 '프로그램의 처리 순서를 바꾸는 것' 이라고 생각하면 된다
자바에는 2개의 선택 제어문(if, switch)과 3개의 반복 제어문(for, while, do-while)으로
구성된 5개의 제어문과 제어 키워드(break, continue)가 있다.

5개 제어문의 공통적인 특징은 모두 중괄호({})가 있다는 것이다. 다만 중괄호 안에 실행문이
1개일 때는 중괄호를 생략할 수 있다.

if 선택 제어문

if문은 조건식에 따라 실행문의 실행 여부를 결정하는 선택 제어문이다. 기본적인 문접 구조는
크게 3가지 유형으로 나뉜다

1. if 단일 구문

조건식 1개, 중괄호 1개가 있는 구조이다

if(조건식){
	실행구문;
}

ex)

int a = 5;
if( a > 3){
	System.out.println("출력 1");	// 정상적으로 실행
}
if( a < 3){
	System.out.println("출력 2");	// 정상적으로 실행X
}

2. if-else 구문

조건식 하나와 중괄호 2개가 있는 형태로 if 구문의 조건식이 true일 때 if 중괄호가 실행
false일 때는 else 구문의 중괄호가 실행된다

if(조건식){
	실행구문;		조건식이 true일 때만 실행
} else{
	실행구문;		조건식이 fasle일 때만 실행
}

ex)

int a = 5;
if( a > 3){
	System.out.println("a는 3보다 크다");		// 실행
} else{
	System.out.println("a는 3보다 작다");		// 실행X
}

3. if-else if-else 구문

n개의 조건식과 n+1개의 중괄호를 포함하고 있는 형태로, if-else if-else의 구조이다

if(조건식1){
	실행구문;			// 조건식1이 true일때 실행 후 제어문 탈출
} else if(조건식2){
	실행구문;			// 조건식2가 true일때 실행 후 제어문 탈출
}

ex)

int score = 90;
if(score >= 90){
	System.out.println("A");
} else if(score >= 85 && score < 90){
	System.out.println("B");
} else if(score >= 80 && score < 85){
	System.out.println("C");
} else{
	System.out.println("F");
}

switch 선택 제어문

switch 문은 점프 위치 변숫값에 다라 특정 위치(case)로 이동해 구문을 실행하는 선택 제어문이다.
점프할 수 있는 위츠는 'case 위칫값:'으로 설정한다.
default 구문은 생략 가능

switch 문의 구조

switch(점프 위치 변수){
	case 위칫값 1:
    	실행구문;
    case 위칫값 2:
    	실행구문;
    case 위칫값 3:
    	실행구문;
    default:
    	실행구문;
}

ex)

int a= 2;
switch(a){
    case 1:
    	System.out.println("A");
    case 2:
    	System.out.println("B");
    case 3:
    	System.out.println("C");
    default:
    	System.out.println("D");
}

위 예제는 a의 값이 2이므로 switch 문의 역할은 case 2:로 실행순서를 이동 시키는 것이다.
이것이 전부다. 그 다음부터는 원래 프로그램 실행 순서대로 1줄씩 실행된다 따라서 B,C,D가
모두 출력된다
switch 문도 if 문처럼 단 하나의 실행문만 실행하게 하기 위해서는 break 제어 키워드를
사용하면 된다. 간단하게 'break는 if 문을 제외한 가장 가까운 중괄호를 탈출' 하는 키워드이다

break 키워드를 포함한 switch 문

int a= 2;
switch(a){
    case 1:
    	System.out.println("A");
        break;
    case 2:
    	System.out.println("B");
        break;
    case 3:
    	System.out.println("C");
        break;
    default:
    	System.out.println("D");
}

for 반복 제어문

for 문은 실행 구문을 반복적으로 수행하는 반복 제어문으로, 일반적으로 반복 횟수가 정해질 때 주로 사용한다. 즉, for 문의 구문을 보면 몇 번 반복하는지 유추할 수 있어야한다.

for문의 구성

for(초기식; 조건식; 증감식){
	실행구문;
}

ex)

int i;
for(i = 0; i < 10; i++){
	System.out.println("i = " + i);
}

초기식
for문이 시작될 때 딱 한번 실행되고 다시는 실행되지 않는다. 따라서 for문 안에서만
사용할 변수는 주로 초기식에서 초기화 한다.

조건식
실행 구문으로 들어가기 위한 유일한 출입구, 이 조건식의 결과가 true가 나오는 동안 계속 반복
false가 나오면 더 이상 반복을 수행하지 않고 for문을 빠져나간다

증감식
for 문의 실행 구문이 모두 수행된 후 닫힌 중괄호(})를 만나면 다음 번 반복을 위해 다시
이동하는 위치로 매회 반복이 수행할 때마다 호출된다.

for문에서 조건식이 생략됐을 때(무한루프)

for(초기식; ; 증감식){
	실행 구문;
}

대부분 무한 루프 안에는 break 키워드를 삽입해 특정 조건을 만족했을 때 무한 루프를 탈출하도록 프로그래밍한다.

for(int i = 0; ; i++){
	if(i > 10){
    	break;
    }
    System.out.println(i + " ");
}
profile
안녕하세요

0개의 댓글