1. if 선택 제어문
- 조건식에 따라 실행문의 실행 여부를 결정하는 선택 제어문
1) if 단일 구문
- 조건식 = true일때 중괄호 안 실행, 조건식 = false일때 중괄호 안 실행 안함
- if 단일 구문의 예
int a =3;
if(a ==3) {
System.out.println("출력1"); //실행됨
}
boolean b = false;
if(b) {
System.out.println("출력2"); //실행 안됨
}
2) if - else 구문
- if 구문의 조건식이 true일때 if 구문의 중괄호 실행, false일떄 else 구문의 중괄호 실행
- if - else 구문의 예
int a,b;
a=5; b=0;
if(a>5) {
b=10; //실행 안됨
}
else {
b=20; //실행됨
}
System.out.println(b); //20
//삼항 연산자로 변환
a=5; b=0;
b = (a>5)?10:20;
System.out.println(b); //20
3) if-else if- else 문
- 조건식을 검색할 떄 항상 위에서부터 검사를 수행하며, 처음으로 조건식 true가 나오는 중괄호 블록을 만나면 해당 블록의 중괄호를 실행하고 if문 탈출
- if-else if-else 구문 예 (1)
-B학점 출력
//90이상: A, 80이상 ~90 미만:B, 70이상~80미만:C, 70 미만:F
int a=85;
if(a>=90) {
System.out.println("A학점");
}
else if(a>80) {
System.out.println("B학점"); //처음 조건식이 참인 블록을 실행한 후 if 문 탈출
}
else if(a>70) {
System.out.println("C학점");
}
else {
System.out.println("D학점");
}
- if-else if-else 구문 예 (2)
-C학점 출력
int a =85;
if(a>=70) {
System.out.println("C학점"); //처음 조건식이 참인 블록을 실행한 후 if문 탈출
}
else if(a>=80) {
System.out.println("B학점");
}
else if(a>=90) {
System.out.println("A학점");
}
else {
System.out.println("F학점");
}
-- if-else if-else 구문 예 (3)
int a =85;
if(a>=70 && a<80) {
System.out.println("C학점");
}
else if(a>=90) {
System.out.println("A학점");
}
else {
System.out.println("F학점");
}
2. switch 선택 제어문
-점프 위치 변숫값에 따라 특정 위치(case)로 이동해 구문을 실행하는 선택 제어문
- 점프할 수 있는 위치는 'case 위칫값:'으로 설정
- default 구문 : 일치하는 위칫값이 없을 때 이 위치로 이동
-switch문을 이용한 점프의 예
int a =2;
switch(a) {
case 1:
System.out.println("A");
case 2:
System.out.println("B"); //실행됨 switch(a)에 따라 case 2:로 이동한 후 차례대로 실행
case 3:
System.out.println("C"); //실행됨
case 4:
System.out.println("D"); //실행됨
}
-break 키워드를 포함한 switch 문의 예
-break : if문을 제외한 가장 가까운 중괄호({})를 탈출
int a =2;
switch(a) {
case 1:
System.out.println("A");
case 2: // switch(a)에 따라 이동되는 위치
System.out.println("B"); //실행됨
break; //switch문을 탈출
case 3:
System.out.println("C");
case 4:
System.out.println("D");
}
- switch문을 이용한 7점 이상 Pass 출력의 예 (1)
- 중복코드 많음 / 비효율적
int a =8;
switch(a) {
case 10:
System.out.println("Pass"); break;
case 9:
System.out.println("Pass"); break;
case 8:
System.out.println("Pass"); break; //실행한 후 switch문 탈출
case 7:
System.out.println("Pass"); break;
default:
System.out.println("Fail");
}
- switch문을 이용한 7점 이상 Pass 출력의 예 (2)
int a =8;
switch(a) {
case 10:
case 9:
case 8:
case 7:
System.out.println("Pass"); break;
default:
System.out.println("Fail");
}
}
-switch문은 위칫값으로 정수, 문자, 문자열만 사용할 수 있는 반면,
-if문은 조건식에서 다양한 비교 연산자, 논리 연산자를 쓸 수 있음
-효율성에는 차이가 날 수 있지만 기본적으로 switch문은 if 문과 상호 변환 가능
-switch 문과 동일한 기능을 수행하는 if문
int a =8;
//switch문
switch(a) {
case 10:
case 9:
System.out.println("A");
break;
case 8:
System.out.println("B"); //실행한 후 탈출
break;
case 7:
System.out.println("C");
break;
default:
System.out.println("D");
}
//if문
if(a>=9) {
System.out.println("A");
}
else if(a==8) {
System.out.println("B"); //실행한 후 탈출
}
else if(a==7) {
System.out.println("C");
}
else {
System.out.println("D");
}
}
'Java' 카테고리의 다른 글
4-2장 제어 키워드 (0) | 2023.04.21 |
---|---|
4-1장 제어문 (2) 반복문 (0) | 2023.04.21 |
3-2장 연산자의 연산 방법 (0) | 2023.04.19 |
3-1장 연산자의 종류 (0) | 2023.04.19 |
2-4장 기본 자료형 간의 타입 변환 (0) | 2023.04.19 |