1. 제어문 : 조건식과 중괄호 {} 블록으로 구성
- 조건문 : if문, switch문
- 반복문 : for문, while문, do-while문
- 제어문 블록 내부에 또 다른 제어문 사용 가능
2. if문
public class Example {
public static void main (String[] args) {
int score = (int)(Math.random()*100) + 1;
String grade;
if (score >= 90) {
if (score >= 98) {
grade = "S";
} else if (score >= 95) {
grade = "A+";
} else {
grade = "A";
}
} else if (score >= 80) {
grade = "B";
} else {
grade = "F";
}
}
}
- 조건식에는 true 또는 false 값을 산출할 수 있는 연산식이나 boolean 변수가 올 수 있음
- 중괄호 {} 블록은 여러 개의 실행문을 하나로 묶기 위해 사용
- if문 블록 내부에 if, switch, for, while, do-while문을 중첩 가능
3. switch문
public class Example {
public static void main (String[] args) {
char grade = 'B';
switch (grade) {
case 'A' :
case 'a' :
System.out.println("성적 : 우수");
break;
case 'B' :
case 'b' :
System.out.println("성적 : 보통");
break;
default :
System.out.println("성적 : 나쁨");
}
}
}
- 변수의 값에 따라 실행문이 결정됨
- 괄호 안의 값과 동일한 값을 갖는 case의 실행문을 실행
- 동일한 값의 case가 없으면 default의 실행문을 실행 / default는 생략 가능
- break는 다음 case를 실행하지 않고 switch문을 빠져나옴
- char 타입 변수나 String 타입 변수도 연산식에 사용 가능
4. for문
for (초기화식; 조건식; 증감식) {
실행문;
}
- 주어진 횟수만큼 실행문을 반복 실행할 때 적합
- 초기화식 : 필요 없을 경우 생략 가능 / 둘 이상의 초기화도 가능 / 초기화식에서 선언된 변수는 for문 블록 내부에서만 사용 가능 / 부동소수점 타입을 초기화식에 사용 시 오류 발생 가능
- 조건식 : 조건식 평가 결과가 true이면 실행문을 실행 false이면 반복문 종료
- 증감식 : 실행문이 모두 실행되면 증감식이 실행되고 다시 조건식 평가
5. while문
while (조건식) {
실행문;
}
- 조건식이 true일 경우 계속해서 반복
- 조건식에는 boolean 변수나 true/false 값을 산출하는 어떠한 연산식도 가능
- 조건식에 true를 사용하면 무한 루프 발생 > 빠져나오기 위해선 종료 코드 또는 break문 필요
6. do-while문
do {
실행문;
} while (조건식);
- 블록 내부의 실행문을 우선 실행시키고 실행 결과에 따라 반복문의 실행 여부를 결정할 경우
- 실행문을 실행하고 실행문 종료 시 조건식을 평가하고 평가 결과에 따라 반복 여부를 결정
- while() 뒤에 세미콜론 (;)을 붙여야 함
7. break, continue문
- break문 : 반복문을 실행 중지할 때 사용 / 주로 if문과 함께 사용됨 / 중첩 반복문에서 break문은 가장 가까운 반복문만 종료, 바깥 반복문까지 종료시키기 위해서는 바깥 반복문에 라벨을 붙이고 'break 라벨;'을 사용
public class Example {
public static void main (String[] args) {
Outter : for (char upper = 'A'; upper <= 'Z'; upper++) {
for (char lower = 'a'; lower <= 'z'; lower++) {
System.out.println(upper + "-" + lower);
if (lower == 'g') {
break Outter;
}
}
}
System.out.println("프로그램 종료");
}
}
- continue문 : 반복문에서만 사용 / 블록 내부에서 continue문이 실행되면 for문의 증감식 또는 while, do-while문의 조건식으로 이동 / 반복문을 종료하지 않고 계속 반복을 수행 / 주로 if문과 함께 사용됨
public class Example {
public static void main (String[] args) {
for (int i = 1; i <= 10; i++) {
if (i % 2 != 0) {
continue;
}
System.out.println(i);
}
}
}