참고 도서
Do it 자바 완전정복
프로그램은 기본적으로 소스 코드를 위에서부터 차례대로 1줄씩 처리한다. 프로그램을 작성
하다 보면 이런 처리 순서를 의도적으로 바꿔야 할 때가 있는데, 이 역할을 수행 하는 것이
바로 '제어문' 이다제어문의 개념
제어문과 제어 키워드를 이용하면 프로그램의 실행 순서를 다양한 방법으로 제어할 수 있다.
즉, 제어문은 '프로그램의 처리 순서를 바꾸는 것' 이라고 생각하면 된다
자바에는 2개의 선택 제어문(if, switch)과 3개의 반복 제어문(for, while, do-while)으로
구성된 5개의 제어문과 제어 키워드(break, continue)가 있다.5개 제어문의 공통적인 특징은 모두 중괄호({})가 있다는 것이다. 다만 중괄호 안에 실행문이
1개일 때는 중괄호를 생략할 수 있다.
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 문은 점프 위치 변숫값에 다라 특정 위치(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(초기식; 조건식; 증감식){ 실행구문; }
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 + " "); }