Java interpreter는 위에서 아래로, 오른쪽에서 왼쪽으로 프로그램을 읽는다.
이러한 프로그램의 흐름을 변경할 수 있는 것이 바로 제어문이다.
➡️ 제어 구조는 순차처리, 선택처리, 반복처리 세 가지로 구성되어있다.
순차처리 : 위에서 아래로 처리한다.
선택처리
반복처리(Loop) : for , while , do-while
if-else문은 가장 기본적인 제어문 중에 하나로, 지정한 조건이 만족할 시에 지정한 블록 안에 있는 코드가 실행된다.
if (조건식) { // 조건이 참인 경우
실행문1;
} else { // 조건이 참이 아닌 경우
실행문2;
}
int a = 0;
if (a == 0) { // 해당 조건을 만족하는 경우
System.out.println("a는 0이다.");
} else if (a == 1) { // 해당 조건을 만족하는 경우
System.out.println("a는 1이다.")
} else { // 조건들을 아무 것도 만족하지 않는 경우
System.out.println("a는 0도 아니고 1도 아니다.")
}
switch문은 switch에 선언된 변수가 case의 값을 만족시킬 때 해당 부분의 실행문을 실행시킨 뒤, break를 통해 빠져나가는 구문이다.
switch (변수) {
case 값1 :
실행문;
break;
case 값2 :
실행문;
break;
default : // 어떠한 값에도 해당하지 않는 경우
실행문;
break;
}
int a = 0;
switch(a) {
case 0 :
System.out.println("a는 0이다."); // 실행문
break;
case 1 :
System.out.println("a는 1이다."); // 실행문
break;
default : // 어떠한 값에도 해당하지 않는 경우
System.out.println("a는 0도 아니고 1도 아니다."); // 실행문
break;
}
case값은 리터럴 또는 상수여야하며, 표현식 유형(값을 반환하는 유형)이어야 한다.
중복 case를 생성하면 컴파일 타임 오류가 발생하기 때문에 각 case는 고유해야 한다.
case마다 선택적인 break문이 있는데, switch문 내부에서 명령문을 종료하고 switch 표현식 다음 컨트롤을 점프하는데 사용된다.
break문을 사용하지 않으면 break문에 도달할 때까지 다음 case로 실행이 계속된다.
switch문 case에 해당하는 경우가 없으면 default가 실행된다. 기본 case에는 break문이 꼭 필요하지는 않다.
반복문은 프로그램 동작 중 특정 문장을 반복 처리해서 실행되는 제어문이다.
for문에서 초기식은 맨 처음 한 번 실행 후에 조건식으로 이동한다.
조건식을 만족하면 블록 내 문장들을 처리한 후에 증감식으로 이동한다.
for (초기식; 조건식; 증감식;) {
// 반복 실행될 코드
}
for (int i = 1; i <= 5; i++) {
System.out.print(a + ", "); // 1, 2, 3, 4, 5
}
조건식이 true일 경우 블록 내의 코드가 실행되고, false일 경우 빠져나온다.
while (조건식) {
// 반복 실행될 코드
}
int a = 0;
while (a < 5) { //a의 값이 5보다 작을 때까지 반복
a++;
System.out.print(a + " "); // 1 2 3 4 5
}
do-while문은 적어도 한 번 실행된다. 조건식이 true이면 블록 내의 문장이 실행되고, false일 경우 빠져나온다.
do {
//반복 실행될 코드
} while (조건식);
int a = 0;
do {
a++;
System.out.print(a + " "); // 1 2 3 4 5
} while (a < 5)
while(true) { }
do { } while(true);
for(; ;) { }