제어문
에는 크게 '조건문'과 '반복문'이 있습니다.
조건문
은 주어진 조건에 따라 각기 다른 수행문이 실행되도록 합니다.
수행하는 문장이 하나라면 중괄호를 사용하지 않아도 됩니다만
가독성을 위해서 문법적인 오류가 없더라도 중괄호 {}
를 사용해주는 것이 좋습니다.
if (조건문 1) {
수행문 1;
}
else if (조건문 2) {
수행문 2;
}
else {
수행문 3;
}
간단한 조건문은 '조건 연산자'로 구현할 수 있습니다.
//////// if-else문 ////////
if (a > b)
max = a;
else
max = b;
//////// 조건 연산자 사용 ////////
max = (a > b) ? a : b;
조건식의 결과값이 정수 또는 문자열이고 그 값에 따라 수행문이 결정될 때
'if-else'문 대신 switch-case
문을 사용할 수 있습니다.
(case 값에 문자열을 사용하는 것은 자바 7부터 가능합니다.)
//////// if-else문 ////////
if (rank == 1) {
medalColor = 'G';
} else if (rank == 2) {
medalColor = 'S';
} else if (rank == 3) {
medalColor = 'B';
} else {
medalColor = 'A'
}
//////// switch-case문 ////////
switch (rank) {
case 1 : medalColor = 'G';
break;
case 2 : medalColor = 'S';
break;
case 3 : medalColor = 'B';
break;
default : medalColor = 'A';
}
이때 'break'는 꼭 필요합니다. 만약 결과값이 같은 경우 아래와 같이 표현할 수 있습니다.
아래는 월(month)마다 날짜수를 'day'에 대입하는 코드입니다.
switch (month) {
case 1: case 3: case 5: case 7: case 8: case 10: case 12: // 옆으로 나열하는 경우
day = 31;
break;
case 2:
day = 28;
break;
case 4: // 아래로 나열하는 경우
case 6:
case 9:
case 11:
day = 30;
break;
반복문
을 사용하면 주어진 조건이 만족 할 때까지 수행문을 반복해 수행합니다.
하나의 조건식이 참인 동안에 블럭 안의 수행문을 반복해서 수행합니다.
주로 조건식이 true, false로 나타납니다.
while (조건식) {
수행문 1;
...
}
수행문 2;
...
수행문을 먼저 한 번 수행하고 하나의 조건식을 체크하며 그 조건이 참인 경우 반복문을 수행합니다.
수행문이 반드시 1회 이상 수행되어야 하는 경우에 사용합니다.
do {
수행문 1;
...
} while (조건식);
수행문 2;
...
주로 조건이 횟수인 경우에 사용하며 초기화식, 조건식, 증감식을 한 번에 작성합니다.
for (초기화식; 조건식; 증감식) {
수행문;
}
반복문과 함께 쓰이며 반복문 내에서 continue
를 만나면 이후의 반복문을 수행하지 않고
위로 돌아가 조건식이나 증감식을 수행합니다.
반복문에서 break
를 만나면 더 이상 반복을 수행하지 않고
중첩된 반복문 내부에 있는 경우 그대로 가장 가까운 반복문 하나만 빠져나옵니다.