Loading...
[PHP] if else 문과 else if 문의 차이점 그리고 switch case 문
REDINFO
약 2년전 2022-04-04 02:36:07

프로그램 하면서 if 문과 switch 문은 빼놓을 수 없을 만큼 많은 비중을 차지 하고 있다.

 

하지만 if 문과 else if 문의 확실 한 차이점을 초기 이해못하고 사용한다면 정말 위험한

프로그램을 할 수 있기때문에 처음 프로그램을 접한다면 반드시 숙지하고 가는게 좋다. 

 

기본적으로 if  else 문의 기본 사용은 1번 예제와 같다. 

 

1번 예제

<?php 
	// get, userid 로 빈 값을 받을 경우
	if($_GET['userid'] == 'tester'){
		echo 'tester 님 반갑습니다.';
	}
	else{
		echo '로그인 후 이용해 주세요.'; // 이부분이 출력 
	}
?>

 

두번째로 else if 문의 기본 사용은 2번 예제와 같다. 

 

2번 예제

<?php 
	// get , userid 로 master 값을 받을 경우
	if($_GET['userid'] == 'tester'){
		echo 'tester 님 반갑습니다.';
	}
	else if($_GET['userid'] == 'master'){
		echo '관리자 님 반갑습니다.';  // 이 부분이 출력
	}
	else{
		echo '로그인 후 이용가능합니다.';	
	}
?>

 

위의 두가지 예제는 단순하게 짜여진 소스라 별문제가 없지만 만약 아래 3번 예제 같은 경우는 어떨까? 

분명 결과값에는 문제가 없다. 하지만 프로그램 수행 빈도로 본다면 상당히 비효율적이다. 

 

3번 예제

<?php 
	// get, userid 로 tester 값을 받을 경우
	if($_GET['userid'] == 'tester'){
		echo 'tester 님 반갑습니다.'; // 이부분이 출력
	}

	if($_GET['userid'] == 'tester2'){
		echo 'tester2 님 반갑습니다.';
	}	

	if($_GET['userid'] == 'tester3'){
		echo 'tester3 님 반갑습니다.';
	}	

	if($_GET['userid'] == 'tester4'){
		echo 'tester4 님 반갑습니다.';
	}		
?>

 

위의 3번 예제 소스를 보면 원하는 값은 출력이 되겠지만 프로그램 수행빈도로 본다면 총 4번을 체크하게 되므로

빈도는 4로 볼 수 있다. (예를 든 빈도이기때문에 규격화된 값은 아님)

 

따라서 위의 소스를 개선 한다면 아래의 4번  예제처럼 보완할 수 있다. 

 

4번 예제

<?php 
	// get, userid로 tester 값을 받을 경우
	if($_GET['userid'] == 'tester'){
		echo 'tester 님 반갑습니다.'; // 이부분이 출력
	}

	else if($_GET['userid'] == 'tester2'){
		echo 'tester2 님 반갑습니다.';
	}	

	else if($_GET['userid'] == 'tester3'){
		echo 'tester3 님 반갑습니다.';
	}	

	else if($_GET['userid'] == 'tester4'){
		echo 'tester4 님 반갑습니다.';
	}		
?>

 

위의 소스의 수행빈도는 1로 볼 수 있다. 하지만 여기서 또 문제점이 발생하는게 tester4 값이 입력됬을 경우다.

이경우에는 3번 예제와 수행빈도가 같기 때문에 좀더 나은 소스로 변경이 필요하다. 

 

이때 사용할 수 있는게 바로 switch case 문이며 해당 방식은 동일 변수간 특정 조건의 값에 따라

처리할 때 사용할 수 있다.  사용 방법은 아래와 같다. 

 

5번 예제

<?php 
	// get, userid로 tester4 값을 받을 경우
	switch ($_GET['userid']) {
		case 'tester':
			echo 'tester 님 반갑습니다.';
		break;

		case 'tester2':
			echo 'tester2 님 반갑습니다.';
		break;

		case 'tester3':
			echo 'tester3 님 반갑습니다.';
		break;

		case 'tester4':
			echo 'tester4 님 반갑습니다.'; // 이 값이 출력
		break;				
		
		default:
			echo '로그인 후 이용 가능합니다.';
		break;
	}
?>

 

이처럼 개발하는데있어 상위 단계로 나아기기 위해선 상황에 맞는 조건문을 잘 사용할 수 있어야 한다. 

 

이번에 보여준 예제는 간단한 예제이지만 사실상 이러한 조건문은 기본 개발의 80%이상을 차지 하기때문에 반드시

숙지하고 넘어가는게 좋다. 

 

 

 

 

이 포스트글이 도움이 되었나요?
4
카테고리 연관글

Comment

댓글작성

0(500) | 1(30)