Java에서 코드는 위에서 아래 순으로 읽고 실행됨
모든 일을 순차적으로 실행할 수 있다면 아무런 상관이 없겠지만, 어떤 코드는 반복해야 될 수도 있고 어떤 코드는 건너뛰는 등의 순서를 변경해야 되는 일이 발생함
이 때, 제어문을 사용하여 코드 실행 흐름을 제어할 수 있음
if (<조건식>) {
<조건이 참일 경우 실행되는 코드>; //코드가 한 줄일 경우 {} 생략가능
}
if (<조건식>) {
<조건이 참일 경우 실행되는 코드>;
} else {
<조건이 거짓일 경우 실행되는 코드>;
}
else if를 사용하여 조건을 추가할 수 있음
if (<조건식>) {
<조건이 참일 경우 실행되는 코드>;
} else if (<다른 조건식>) {
<다른 조건이 참일 경우 실행되는 코드>;
} else {
<위 조건들이 거짓일 경우 실행되는 코드>;
}
switch (<변수>) {
case <값1> :
<변수가 값1에 해당하는 경우 실행되는 코드>;
break;
case <값2> :
<변수가 값2에 해당하는 경우 실행되는 코드>;
break;
default :
<변수가 어떠한 값에도 해당하지 않는 경우 실행되는 코드>;
break;
}
for (<초기식>; <조건식>; <증감식>) {
<반복될 코드>;
}
int sum = 0;
for (int i=1; i<=10; i++) {
sum += i
}
System.out.println(sum}; //55(1~9까지의 합)
int[] numbers = {1,2,3,4,5};
for (int number : numbers) {
System.out.println(number); //1 2 3 4 5출력
}
while (<조건식>) {
<조건이 참일 경우 반복되는 코드>;
}
do {
<조건이 참일 경우 반복되는 코드>;
} while (<조건식>);
조건문에서 개발자의 의도로 중간 흐름을 바꿀 수 있는 구문
for (int i=0; i<=10; i++) {
if (i==5) break;
System.out.println(i); //1 2 3 4출력(5에서 탈출)
int findNumber = 10;
label;
for (int i=0; i<arr.length; i++) {
for (int j=0; j<arr[i].length; j++) {
if (arr[i][j] == findNumber) {
break label; //arr에서 뽑아낸 값이 10인 경우 두 개의 for문 모두 탈출
}
}
}
for (int i=0; i<=10; i++) {
if (i==5) continue;
System.out.println(i); //1 2 3 4 6 7 8 9 10출력(5에서 skip)
int findNumber = 10;
label;
for (int i=0; i<arr.length; i++) {
for (int j=0; j<arr[i].length; j++) {
if (arr[i][j] == findNumber) {
continue label; //arr에서 뽑아낸 값이 10인 경우 두 개의 for문 모두 탈출
}
}
}
int getAge(String name) {
if (name == "김상훈") return 28;
System.out.println("존재하지 않는 사람입니다");
return -1;
}
void printAge(String name) {
if (name == "김상훈") {
System.out.println("28");
return;
}
System.out.println("존재하지 않는 사람입니다");
return;
}