조건문
조건식에 따라 다른 실행문을 실행하기 위해 사용한다. 자바의 조건문에는 if문과 switch문이 있다.
if 문
조건식의 결과에 따라 블록 실행 여부가 결정된다.
if(num >= 3) { // 조건이 참일 때만, 두 개의 실행문 수행
System.out.println("크다");
System.out.println("참일 때");
}
변수 num에 3보다 크거나 같은 수가 할당된 경우, if문 내부의 실행문을 실행한다. 만약 변수 num에 3보다 작은 수가 할당된 경우, if문 내부의 실행문은 실행되지 않는다.
if(month < 1 || month > 12) {
System.out.println("월은 1 ~ 12 사이만 허용"); // 입력 자료 오류 검사
System.exit(0); // 프로그램 강제 종료
}
위 코드에서 month 값이 1보다 작거나 12보다 큰 경우, 프로그램을 강제로 종료한다.
if - else 문
조건식의 결과에 따라 실행 블록을 선택한다.
if(num < 3) { // 조건에 따라 참 또는 거짓 영역 수행
System.out.println("작다");
System.out.println("참일 때 수행");
} else {
System.out.println("거짓일 때 수행");
}
변수 num에 3보다 작은 수가 할당된 경우, if문 내부의 실행문을 실행한다. 그렇지 않은 경우, else 문 내부의 실행문을 수행한다.
다중 if 문
if(score >= 70) {
if(score >= 90) {
System.out.println("우수");
} else {
System.out.println("보통");
}
} else {
System.out.println("70점 미만");
if(score > 50) {
System.out.println("50점 초과");
} else {
System.out.println("50점 이하");
}
}
- score가 70보다 크거나 같은 경우, 내부 실행문(2행) 실행
- score가 90보다 크거나 같은 경우, if 문(2행) 내부 실행문(3행) 실행
- score가 90보다 작은 경우, else 문(4행) 내부 실행문(5행) 실행
- score가 70보다 작은 경우, else 문(7행) 내부 실행문 실행
- score가 50보다 큰 경우, 10행 실행
- score가 50보다 작거나 같은 경우, 12행 실행
if - else if - else 문
조건문이 여러 개일 때, 처음 if 문의 조건식이 false일 경우, 다른 조건식의 결과에 따라 실행 블록을 선택할 수 있는데, if 블록의 끝에 else if 문을 사용하면 된다.
int score = 75; String grade = "";
if(score >= 90){
grade = "A";
} else if (score >= 70) {
grade = "B";
} else {
grade = "F";
}
1️⃣ score가 75 이므로 if 문을 만족하지 않는다.
2️⃣ else if 문의 조건(score가 70보다 클 경우)에 해당하므로 변수 grade에 문자 "B"가 할당된다.
switch 문
좀 더 정형화된 문법으로 값에 따라 여러 방향으로 분기하는 경우에 사용한다. 길게 늘어진 if 문에 비해 코드가 짧고 의미 파악이 쉽다.
int age = 23;
age = age / 10 * 10; // age의 몫 * 10 이므로 10,20,30,... 등의 값이 age에 할당
switch (age) {
case 20:
System.out.println("20대");
break;
case 30:
System.out.println("30대");
break;
default:
System.out.println("기타");
}
switch 문은 괄호 안에 변수 값과 동일한 값을 갖는 case로 이동하여 실행문을 실행한다. 만약, 괄호 안의 변수 값과 동일한 값을 갖는 case가 없으면 default로 이동하여 실행문을 실행한다.
case 문 끝에 break의 의미
다음 실행문을 실행하지 않고 switch 문을 빠져나가기 위해 case 문마다 break가 포함되어 있다. 만약 break 문이 없다면 다음 case 문이 연달아 실행되는데 case의 값과는 상관없이 진행된다.
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days = 31;
break;
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
}
month 값이 1, 3, 5, 7, 8, 10, 12인 경우, 변수 days에 31이 할당되고 break문으로 인해 switch문이 종료된다.
month 값이 4, 6, 9, 11인 경우, 변수 days에 30이 할당되고 break문으로 인해 switch 문이 종료된다.
윤년 확인 예시 코드
변수 선언 및 할당
int year, month, days = 28;
String msg = "평년";
기본적으로 변수 days에는 28을 할당했고 변수 msg에는 "평년"이라는 문자열을 할당했다.
year, month 값 입력
System.out.print("년도 입력 : ");
year = sc.nextInt();
System.out.print("월 입력 : ");
month = sc.nextInt();
입력자료 오류 검사
if(month < 1 || month > 12) {
System.out.println("월은 1 ~ 12 사이만 허용");
System.exit(0); // 프로그램 강제 종료
}
만약 변수 month에 1보다 작거나 12보다 큰 수가 입력되면, 프로그램을 강제 종료한다.
윤년 확인 방법
변수 year의 값이 4의 배수이고 100의 배수가 아니거나 400의 배수이면 윤년, 조건을 만족하지 않으면 평년.
if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
days = 29;
msg = "윤년";
}
System.out.println("결과 : " + year + "년은 " + msg);
[출처]
'Java > SE' 카테고리의 다른 글
[Java] 객체 지향 설계의 5가지 원칙 (0) | 2025.05.11 |
---|---|
[Java] JDK 버전 여러 개 사용하는 방법 (2) | 2025.05.08 |
[Java] 연산자 (0) | 2025.05.08 |
[Java] 변수와 타입 (3) | 2025.05.07 |
[Java] 소스 코드 개발 도구(Eclipse) (0) | 2025.05.06 |