본문 바로가기

Java

4-1장 제어문 (1) 조건문

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