1. 단순 if문
- 괄호 안에 조건식(boolean 변수, 비교/논리 연산)
- 조건식의 결과는 boolean 값
- 조건식이 true이면 if 내부의 실행 문장이 실행
- 조건식이 false이면 if문을 벗어남
//정수 n이 짝수인지 판별하는 코드
if(n%2==0){
System.out.println(n+"은 짝수입니다");
}
//score가 80점 이상 89점 이하이면 학점을 B로 출력하는 코드
if((score>=80)&&(score<=89)){
System.out.println("학점은 B입니다");
}
- 실행문이 한 문장인 경우 중괄호 생략 가능
if((score>=80)&&(score<=89))
System.out.println("학점은 B입니다");
2. if-else문
- if의 조건식이 참인 경우와 거짓인 경우에 각각 실행할 문장 지시 가능
- 조건식이 true이면 if의 실행문을 실행한 후 if-else문을 벗어남
- 조건식이 false이면 else의 실행문을 실행한 후 if-else문을 벗어남
//정수 n이 짝수인지 홀수인지 구별하는 코드
if(n%2==0){
System.out.println("n은 짝수입니다");
}
else{
System.out.println("n은 홀수입니다.");
}
- 실행문이 한 문장이면 역시 중괄호 생략 가능
3. 다중 if-else문
- if-else가 연속
- 조건문이 너무 많은 경우 switch문 권장
4. 중첩 if-else문
- if문이나 if-else문, else문의 실행문에 if문이나 if-else문을 포함
5. switch문
- 값에 따라 여러 방향으로 분기하는 경우 if문보다 switch문이 편리
- ( )안 식의 결과값과 일치하는 case문으로 분기
- case문의 실행문 실행한 후 break를 만나면 switch문을 벗어남
- 어떤 case문으로도 분기하지 못하는 경우 default문으로 분기하여 실행문 실행
- default문 생략 가능
- switch문 내의 break문
- case의 실행문이 실행되고 난 후 break문을 만나면 switch문을 벗어남
- case문에 break문이 없다면 break문을 만날 때까지 다음 case문으로 계속 실행
char grade='A';
switch(grade){
case 'A':
System.out.println("90~100점입니다.");
//break없음
case 'B':
System.out.println("80~89점입니다.");
break;
case 'C':
System.out.println("79~79점입니다.");
break;
}
90~100점입니다.
80~89점입니다.
- case문의 값
- switch문은 식의 결과값을 case문의 값과 비교
- case문의 값은 정수, 문자, 문자열 리터럴만 허용
int b;
switch(b%2){
case 1: ...; break;
case 2: ...; break;
}
//정수 리터럴 사용 가능
char c;
switch(c){
case '+': ...; break;
case '-': ...; break;
}
//문자 리터럴 사용 가능
String s = "예";
switch(s){
case "예": ...; break;
case "아니요": ...; break;
}
//문자열 리터럴 사용 가능
예제 2-10 단순 if문을 사용하여 시험점수가 80점 이상이면 합격으로 판별하는 프로그램 작성
예제 2-11 if-else문을 사용하여 입력된 수가 3의 배수인지 판별하는 프로그램 작성
예제 2-12 다중 if-else문을 사용하여 입력받은 성적에 대해 학점을 부여하는 프로그램 작성
- 90점 이상: A
- 80~89점: B
- 70~79점: C
- 60~69점: D
- 60점 미만: F
예제 2-13 중첩 if-else문을 사용하여 입력받은 학년과 점수에 따른 합격 판별 프로그램 작성
- 점수가 60점 이상이면 합격
- 4학년의 경우 70점 이상이어야 합격
예제 2-14 예제 2-12를 switch문으로 작성
예제 2-15 switch문을 사용하여 메뉴의 가격을 알려주는 프로그램 작성
- 에스프레소, 카푸치노, 카페라떼는 3500원
- 아메리카노는 2000원