if 문

if 문

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

 

if~else 문

if (조건) {
        문장1;
        문장2;
        ....
}
else {
        문장1;
        문장2;
        ....
}

if~else if 문

if (조건) {
        문장1;
        문장2;
        ....
}
else if (조건2) {
        문장1;
        문장2;
        ....
}
else if (조건3) {
        문장1;
        문장2;
        ....
}
else {
        문장1;
        문장2;
        ....
}

 

$a = "";
if (!isset($a)) echo(" \$a의 값이 없습니다.2<br>"); // FALSE
if (is_null($a)) echo(" \$a의 값이 없습니다.1<br>"); // FALSE
if (empty($a)) echo(" \$a의 값이 없습니다.3<br>"); // TRUE

빈 값("")

empty() : TRUE

is_null() ,  !isset() : FALSE

(PHP가 빈 값과 널 값을 서로 다르게 봄)

 

switch문

switch (변수 또는 수식) {
   case 값1 :
             문장1;
             문장2;
             ...
             break;
   case 값2 :
             문장1;
             문장2;
             ...
             break;
...
   default :
             문장1;
             문장2;
             ...
}

 

 

 

 

 

if문 예제

예제 2-1. 입력된 값 중에 큰 값을 출력한다.

2-1.html

<html>
<head>
<title>2-1.html 입력 폼파일</title>
<meta http-equiv="content-type" content="text/html; charset=euc-kr">
</head>
  <form method="post" action="2-1.php">
	A : <input type="text" name="a"><br>
	B : <input type="text" name="b"><br>
		<input type="submit" name="확인" value="확인">
		<input type="reset" name="취소" value="취소"><br>
  </form>
</html>

2-1.php

<?
   $a = $_POST["a"];
   $b = $_POST["b"];
   if ($a>$b) {
       echo(" 입력 값중 큰 값은 \$a($a)입니다. ");
   }
   if ($b>$a) { 
       echo(" 입력 값중 큰 값은 \$b($b)입니다. ");
   }
   if ($a==$b) {
   echo(" 두 입력 값이 동일합니다.. ");
   }
?>

실행결과

 

예제 2-2. 다음 표를 보고 입력된 급여에 따라 각 사원의 내년도 지급 받을 급여를 출력한다.
* 입력은 만원 단위로 입력한다.
ex) 1,230,000원 → 123만원

2-2.html

<html>
<head>
<title>2-2.html 급여 입력 폼파일</title>
<meta http-equiv="content-type" content="text/html; charset=euc-kr">
</head>
  <form method="post" action="2-1.php">
	현재 급여 입력: <input type="text" name="sal">만원<br>
		<input type="submit" name="확인" value="확인">
		<input type="reset" name="취소" value="취소"><br>
  </form>
</html>

2-2.php

<?
   $sal = $_POST["sal"];
   if ($sal <= 100) { // sal이 100만원 이하인 경우
      $sal = round($sal*1.15);
      echo(" 당신의 내년 급여는 15% 인상된 {$sal}만원입니다.");
   }
   else if ($sal <= 200) { // 101만원≦sal≦200만원
      $sal = round($sal*1.1);
      echo(" 당신의 내년 급여는 10% 인상된 {$sal}만원입니다.");
   }
   else if ($sal <= 300) { // 201만원≦sal≦300만원
   $sal = round($sal*1.05);
   echo(" 당신의 내년 급여는 5% 인상된 {$sal}만원입니다.");
   }
   else if ($sal <= 400) { // 301만원≦sal≦400만원
   $sal = round($sal*1.02);
   echo(" 당신의 내년 급여는 2% 인상된 {$sal}만원입니다.");
   }
   else { // sal이 400만원을 초과하는 경우
   echo(" 당신의 내년 급여는 올해와 같은 {$sal}만원입니다.");
   }
?>

실행결과

 

switch 실습

예제 2-3. 다음 [표]를 보고 입력된 급여에 따라 각 사원의 내년도 지급 받을 급여를 출력한다.
* 프로그램은 switch 문을 이용한다.
* 입력은 만원 단위로 입력한다.
ex) 1,230,000원 → 123만원

2-3.html

<html>
<head>
<title>2-3.html 급여 입력 폼파일</title>
<meta http-equiv="content-type" content="text/html; charset=euc-kr">
</head>
  <form method="post" action="2-2.php">
	현재 급여 입력: <input type="text" name="sal">만원<br>
		<input type="submit" name="확인" value="확인">
		<input type="reset" name="취소" value="취소"><br>
  </form>
</html>

2-3.php

<?
   $sal = $_POST["sal"];
   $con = ceil($sal/100);
   switch ($con) {
     case 1: // sal이 100만원 이하인 경우
            $sal = round($sal*1.15);
            echo(" 당신의 내년 급여는 15% 인상된 {$sal}만원입니다.");
            break;
     case 2: // 101만원≦sal≦200만원
            $sal = round($sal*1.1);
            echo(" 당신의 내년 급여는 10% 인상된 {$sal}만원입니다.");
            break;
     case 3: // 201만원≦sal≦300만원
            $sal = round($sal*1.05);
            echo(" 당신의 내년 급여는 5% 인상된 {$sal}만원입니다.");
            break;
     case 4: // 301만원≦sal≦400만원
            $sal = round($sal*1.02);
            echo(" 당신의 내년 급여는 2% 인상된 {$sal}만원입니다.");
            break;
     default : // sal이 400만원을 초과하는 경우
            echo("당신의 내년 급여는 올해와 같은 {$sal}입니다.");
   }
?>

실행결과

 

예제 2-4. 다음에 제시하는 문제점과 해결책을 이용, 이전 [프로그램]를 수정한 프로그램을 완성하세요

- 문제점
인상폭이 각 등급별로 정의되면 급여가 역전되는 현상이 나타난다. 예를 들어 급여가 99만원이었던 5등급 사
원은 15% 인상으로 114만원이 되지만 101만원인 4등급 사원은 10% 인상으로 111만원이 되어 인상 후, 자
신의 급여 등급보다 낮은 사원보다 적은 급여를 받게 된다.
- 해결책
역전 현상이 나타나는 경우 한 단계 낮은 등급의 최대 급여와 동일하게 급여를 조정해주기로 결정했다. 예를
들어 5등급의 최대 급여는 100만원으로 인상된 급여는 115만원인데 만일 4등급 사원 중에 인상 급여가 115
만원에 미치지 못하는 사원이 있다면 해당 사원의 인상된 급여는 115만원으로 조정해 주는 것이다.

2-4.html

<html>
<head>
<title>2-4.html 급여 입력 폼파일</title>
<meta http-equiv="content-type" content="text/html; charset=euc-kr">
</head>
  <form method="post" action="2-4.php">
	현재 급여 입력: <input type="text" name="sal">만원<br>
		<input type="submit" name="확인" value="확인">
		<input type="reset" name="취소" value="취소"><br>
  </form>
</html>

2-4.php

<?
   $sal = $_POST["sal"];
   $con = ceil($sal/100);
   switch ($con) {
   case 1: // sal이 100만원 이하인 경우(5 등급)
          $sal = round($sal*1.15);
          echo(" 당신의 내년 급여는 15% 인상된 {$sal}만원입니다.");
          break;
   case 2: // 101만원≦sal≦200만원(4 등급)
          $sal = round($sal*1.1);
          if ($sal >= 115) // 5 등급 인상 후 최대 급여 115만원
            echo(" 당신의 내년 급여는 10% 인상된 {$sal}만원입니다.");
          else
            echo(" 당신의 내년 급여는 115만원입니다.");
          break;
   case 3: // 201만원≦sal≦300만원(3 등급)
          $sal = round($sal*1.05);
          if ($sal >= 220) // 4 등급 인상 후 최대 급여 220만원
            echo(" 당신의 내년 급여는 10% 인상된 {$sal}만원입니다.");
          else
            echo(" 당신의 내년 급여는 220만원입니다.");
          break;
    case 4: // 301만원≦sal≦400만원(2 등급)
          $sal = round($sal*1.02);
          if ($sal >= 315) // 3 등급 인상 후 최대 급여 315만원
             echo(" 당신의 내년 급여는 10% 인상된 {$sal}만원입니다.");
          else
            echo(" 당신의 내년 급여는 315만원입니다.");
          break;
   default : // sal이 400만원을 초과하는 경우(1 등급)
          if ($sal >= 408) // 2 등급 인상 후 최대 급여 408만원
            echo(" 당신의 내년 급여는 동결된 {$sal}만원입니다.");
          else echo(" 당신의 내년 급여는 408만원입니다.");
}
?>

 

실행결과

+ Recent posts