본문 바로가기

스터디/코딩

[ 자율 스터디 ] PHP 조건문

조건문이란?

- 조건의 참과 거짓에 따라 실행하는 문장을 다르게 할 때 사용하는 문장

- PHP에서 사용하는 조건문에는 if문과 switch문이 있다.

 

 

if 구문

- if문의 조건식이 참이면 if 다음 문장을 실행

 

if (조건식)
{
    문장1;
    문장2;
    …
}

 

<?php
	echo "if 구문을 실습해보자!!<br>";
	$age = 30;

	if ($age >= 20)
	{
		echo "\$age = $age <br>";
		echo "\$age가 20보다 크기에 술을 마셔도 됩니다.";
	}
?>

$age >= 20 조건이 참이기에 if 다음 문장이 실행되는 걸 볼 수 있다.

 

<?php
	echo "if 구문을 실습해보자!!<br>";
	$age = 10;

	if ($age >= 20)
	{
		echo "\$age = $age <br>";
		echo "\$age가 20보다 크기에 술을 마셔도 됩니다.";
	}
?>

$age가 10이므로 조건식이 거짓이기에 아무것도 출력되지않는다.

 

 

if - else 구문

- if문의 조건식이 참이면 if 다음 문장을 실행하고, 거짓이면 else 다음 문장을 실행

  ( else의 조건식이 if 조건식의 여집합이라고 생각하면 좋을 것 같다. )

 

if (조건식)
{
    문장1;
    문장2;
    …
}
else 
{
    문장a;
    문장b;
    …
}

 

<?php
	echo "if-else 구문을 실습해보자!!<br>";
	$age = 10;

	if ($age >= 20)
	{
		echo "\$age = $age <br>";
		echo "\$age가 20보다 크기에 술을 마셔도 됩니다.";
	}
	else
	{
		echo "\$age = $age <br>";
		echo "\$age가 20보다 작기에 술을 마시면 안됩니다.";
	}
?>

이때는 조건이 참이 아니더라도 바로 끝나는게 아니라 else 뒷 문자을 실행시켜준다.

 

 

if - elseif - else 구문

- if문의 조건식이 참이면 if 다음 문장을 실행하고 if문을 빠져나가지만 if문의 조건식이 거짓이면 elseif의 조건식을 확인한다. 이때, elseif의 조건식이 참이면 elseif 다음 문장을 실행하고, 거짓이면 그 다음 elseif 조건식으로 넘어간다. 그러다 elseif의 조건식이 모두 거짓이면 마지막 else 다음 문장을 실행한다.

 

if (조건식)
{
    문장1;
    문장2;
    …
}
else if (조건식)
{
    문장a;
    문장b;
    …
}
else if (조건식)
{
    문장A;
    문장B;
    …
}
else
{
    문장ㄱ;
    문장ㄴ;
    …
}

 

<?php
	echo "if-else 구문을 실습해보자!!<br>";
	$score = 70;

	if ($score >= 90)
	{
		$grade = "A";
		echo "\$score = $score <br>";
		echo "\$grade는 \"$grade\"입니다.";
	}
	elseif ($score >= 80)
	{
		$grade = "B";
		echo "\$score = $score <br>";
		echo "\$grade는 \"$grade\"입니다.";
	}
	elseif ($score >= 70)
	{
		$grade = "C";
		echo "\$score = $score <br>";
		echo "\$grade는 \"$grade\"입니다.";
	}
	elseif ($score >= 60)
	{
		$grade = "D";
		echo "\$score = $score <br>";
		echo "\$grade는 \"$grade\"입니다.";
	}
	elseif ($score >= 50)
	{
		$grade = "E";
		echo "\$score = $score <br>";
		echo "\$grade는 \"$grade\"입니다.";
	}
	else
	{
		$grade = "F";
		echo "\$score = $score <br>";
		echo "\$grade는 \"$grade\"입니다.";
	}
?>

$score를 70으로 지정해주었을 때
$score를 30으로 지정해주었을 때

 

 

if문의 중첩

- if문 안에 if문이 필요할 때 사용

if (조건식)
{
    문장;

}
elseif (조건식)
{
	if (조건식)
		{
    		문장;
		}	
	else 
		{
    문장;
		}
}
else
{
	문장;
}

 

<?php
	echo "if문의 중첩 구문을 실습해보자!!<br>";
	$a = 10;
	$b = 40;
	$c = 60;

	if ($a > $b)
	{
		if($a > $c)
		{
			echo "가장 큰 수는 \$a입니다. : $a";
		}
		else
		{
			echo "가장 큰 수는 \$c입니다. : $c";
		}
	}
	else
	{
		if($b > $c)
		{
			echo "가장 큰 수는 \$b입니다. : $b";
		}
		else
		{
			echo "가장 큰 수는 \$c입니다. : $c";
		}
	}
	
?>

$a = 10, $b = 40&nbsp; $c = 60 일 때, 최대값 구하기!

 

 

switch 문

- 변수의 값이 case에 있는 조건식 중 참인 곳에 있는 문장을 실행한다. case에 참인 곳이 없으면 default 뒤의 문장을 실행한다.

switch (변수)
{
	case 값1 :
    	문장1;
        문장2;
        …
        break;
        
	case 값2 :
    	문장a;
        문장b;
        …
        break;
        
	case 값3 :
    	문장A;
        문장B;
        …
        break;
	default :
    	문장ㄱ;
        문장ㄴ;
        …
        break;        
}

 

<?php
	echo "switch 구문을 실습해보자!!<br>";
	$score = 70;

	switch ($score)
	{
		case 90 :
    		$grade = "A";
			echo "\$score = $score <br>";
			echo "\$grade는 \"$grade\"입니다.";
			break;
        
		case 80 :
    		$grade = "B";
			echo "\$score = $score <br>";
			echo "\$grade는 \"$grade\"입니다.";
			break;
        
		case 70 :
    		$grade = "C";
			echo "\$score = $score <br>";
			echo "\$grade는 \"$grade\"입니다.";
			break;
		case 60 :
    		$grade = "D";
			echo "\$score = $score <br>";
			echo "\$grade는 \"$grade\"입니다.";
			break;     
		case 50 :
    		$grade = "E";
			echo "\$score = $score <br>";
			echo "\$grade는 \"$grade\"입니다.";
			break;
		default :
			$grade = "E";
			echo "\$score = $score <br>";
			echo "\$grade는 \"$grade\"입니다.";
			break;
}
	
?>

if-else에서 실습해본 것을 switch 구문으로 바꿔보았다.

 

 

[ 연습 문제 ]

 

- 1번

<?php
	echo "연습 문제 1번<br><br>";
	echo "시간당 급여<br>";
	echo "- 주간 근무 : 9,500원<br>";
	echo "- 야간 근무 : 주간 시급 * 1.5<br><br>";

	$hour_rate = 9500;

	$day_night = "주간";
	$work_time = 8;

	if ($day_night == "주간")
	{ 
		$pay = $hour_rate * $work_time;
	}
	else 
	{
		$pay = $hour_rate * $work_time * 1.5;시간 * 1.5;
	}

	echo "$work_time 시간 동안 일한 $day_night 급여는 $pay 원입니다.";	
?>

 

- 2번

<?php
	echo "연습 문제 2번<br><br>";
	$month = 12;

	if($month >= 3 && $month <= 5)
	{
		$season = '봄';
		echo "{$month}월은 {$season}입니다.";
	}
	elseif($month >=6 && $month <= 8) 
	{
		$season = '여름';
		echo "{$month}월은 {$season}입니다.";
	}
	elseif($month >=9 && $month <= 11)
	{
		$season = '가을';
		echo "{$month}월은 {$season}입니다.";
	}
	elseif($month == 12 || $month == 1 || $month == 2)
	{
		$season = '겨울';
		echo "{$month}월은 {$season}입니다."; 
	}
	else
	{
		echo "잘못 입력되었습니다!"; 
	}
?>

 

- 3번

<?php
	echo "연습 문제 3번<br><br>";
	$score = 90;
	echo "시험 점수 : {$score}점<br>";

	if($score >= 90 && $score <= 100)
	{
		echo "등급 : 수";
	}
	else if($score >= 80 && $score <= 89)
	{
		echo "등급 : 우";
	}	
	else if($score >= 70 && $score <= 79)
	{
		echo "등급 : 미";
	}
	else if($score >= 60 && $score <= 69)
	{
		echo "등급 : 양";
	}
	else if($score >= 0 && $score <= 59) 
	{
		echo "등급 : 가";
	}	
	else
	{
		echo "점수를 잘못 입력하셨습니다!";
	}
?>

- 4번

<?php
	echo "연습 문제 4번<br><br>";
	$buy = 80000;

	if($buy >= 10000 && $buy < 50000)
	{
		$rate = 5.0;
	}
	elseif($buy >= 50000 && $buy < 300000)
	{
		$rate = 7.5;
	}
	elseif($buy >= 300000)
	{
		$rate = 10.0;
	}
	else
	{
		$rate = 0;
	}

	$discount = $buy * $rate / 100;
	$pay = $buy - $discount;

	echo "구매액 : {$buy}원<br>";
	echo "할인율 : {$rate}%<br>";
	echo "할인금액 : {$discount}원<br>";
	echo "지불액 : {$pay}원";
?>

 

- 5번

<?php
	echo "연습 문제 5번<br><br>";
	$price = 30000;
	$service = "매우 만족";
	echo "서비스 만족도 : $service<br>";
	
	if($service == "매우 만족")
	{
		$tip = $price * 0.2;
	}	
	elseif ($service == "만족")
	{
		$tip = $price * 0.1;
	}
	else 
	{
		$tip = $price * 0.05;
	}

	echo "팁 : {$tip}원";

?>

'스터디 > 코딩' 카테고리의 다른 글

[ 자율 스터디 ] PHP 함수  (0) 2023.01.04
[ 자율 스터디 ] PHP 배열  (0) 2023.01.04
[ 자율 스터디 ] PHP 반복문  (0) 2023.01.03
[ 자율 스터디 ] PHP 기초 문법  (0) 2023.01.02
[ 자율 스터디 ] PHP의 기본 지식  (0) 2023.01.02