제어문 - IF문

프로그래밍에서 순차적이 아닌 처리될 명령을 달리할 필요가 있을 때 사용하기 위해 만들어졌으며, 주어진 조건의참 또는 거짓에 따라 실행되는 코드는 선택되어 각각 다른 명령을 수행하도록 한다. 제어문에는 대표적으로 if문과 switch문이 있다.
위와 같은 말은 많이 어렵네요.
소스를 보면서 이해해 보도록 합시다

if문이란 주어진 조건이 참이라면 그 다음 명령을 실행하고 거짓이면 그렇지 않으면 실행하지 않습니다.
예를 들어 에버디벨을 만든 사람은 사람이다 라고 하면 그것은 참이므로 참일때 실행할 명령을 실행하며 그렇지 않을경우에는 실행을 하지 않습니다

조건문에서 같다는 표현을 쓸때 == 로 표시합니다

<?php
    $a = 50;
    if($a == 50){
        echo "hi";
    }
?>

위의 소스에서 변수 a의 값을 50으로 입력했죠? 그리고 if문에서 변수 a의 값이 50이라는 조건을 주었고 참일 경우 ehco "hi";를 실행하여 출력하게 되어있습니다.

위의 결과는 웹브라우저에서 50을 표시합니다.

이번엔 if문에 거짓이 나오는 상황을 만들어 봅시다. 조건에 $a == 40일때의 조건을 만들어 봅시다 그러면 a는 50인데 40일때 라고 부여했으니 echo "hi";명령문을 실행하지 않겠죠

<?php
    $a = 50;

    if($a == 40){
        echo "hi";
    }
?>

이같은 소스라면 a는 40이 아니기 때문에 아무것도 표현하지 않습니다

else 문

else문은 if문과 함께 사용하는 명령문입니다. 위에서 우리는 if문이 참일경우 hi를 출력하는것을 보았습니다.
이때 만약 참이 아닌 거짓일때 하는 명령을 주기 위해서는 else를 이용합니다

<?php
    echo "\$a=15, \$b=23의 곱셈연산 결과 값의 홀,짝수 구별<br />";
    echo "<hr />";

    $a = 15;
    $b = 23;
    $gob = $a * $b;

    if ($gob %2 == 0) {
        echo " $a * $b 의 값은 짝수입니다. 결과값 {$gob} <br />";
} else { echo " $a * $b 의 값은 홀수입니다. 결과값 {$gob} <br />";
} ?>

위 소스는 어떤 수의 홀,짝을 알려주는 소스입니다 .

a와 b를 곱한값을 $gob 이라고 하고 $gob 를 2로 나누어서 나머지값이 0이라면 그것은 짝수이며 나머지가 0이 아니라면 홀수입니다 2로 나누기때문에 0아니면 1이 나오게 된다.

위의 소스에서 a 와 b의 값을 변경해서 테스트 해보면 다른결과를 얻을 수 있다.

php image

아래의 소스는 전공 80점 이상 교양 70점 이상은 졸업시험을 통과하는 소스이다.

<?php
    echo "전공 80점이상, 교양 75점 이상을 졸업시험 통과<br />";

    $var1 = 84;  //이과목이 전공
    $var2 = 75;  // 교양

    if ($var1 >= 80 && $var2 >= 75) {
        echo "전공 $var1 점, 교양 $var2 점 당신은 졸업시험에 통과 하셨습니다.<br />";
    } else {
        echo "전공 $var1 점, 교양 $var2 점 당신은 졸업시험에 통과 하지 않으셨습니다. 5학년이 되어주세요..<br />";
} ?>

위의 식에서 if문 안에 &&가 들어있다. 이 &&는 두개의 조건이 다 참일때 둘다 참인것을 말합니다.
예를 들어 $var >= 80 이것도 참이어야 하며 $var >= 75도 참이어야 한다는 것입니다 만약 하나라도 거짓이 되면 if($var1 >= 80 && $var2 >= 75)
이 명려문은 전체적으로 거짓을 반환하게 되어 else문이 실행됩니다 &&는 and로 고쳐서 쓸 수 있으나 현업에서는 &&를 사용하므로 &&를 사용해 주세요

그렇지 않을경우에는 else문의 echo문을 실행한다.

만약 두 조건에 하나만 만족이 되어도 졸업이 가능하게 만들고 싶다면 &&(and) 대신 ||(or)를 사용하면 됩니다.

아래는 결과값

php image

else if문

else if(다중 if)문은 조건을 사용해야 할때 사용 합니다.

<?php
    echo "입장료 할인 적용 <br />";
    echo "------------------------------------------ <br />";
    echo "10세 이하 50%, 65세이하 80% 군인은 면제 <br />";

    $fee = 5000;  // 입장료는 5000원으로 설정
    $age = 88;    // 나이를 88
    $sol = "군인"; // 신분 군인으로 설정

    if ($sol == "시민") {
        echo " $sol 은 무료 입장입니다.<br />";  // sol은 군인인데 조건이 시민이므로 거짓 그러므로 else문으로 넘어갑니다.
    } else if($age <= 10) {
        $fee *= 0.5;// 0.5를 곱하면 반값이 된다.
        echo " {$age}세는 어린이이므로 50%된 5000 * 0.5 = $fee 으로 입장가능 합니다.<br />";
    } else if ($age >=65) { // 위의 문에서 조건이 성립하지 않아 다른 조건이 필요하고 elseif 문을 선언해서 조건을 다시 생성
        $fee *= 0.2; // 0.2를 곱하면 80%의 할인이 들어간다.
        echo "{$age}세는 경로우대로 80% 할인된 5,000 * 0.2(1-0.8) = {$fee} 으로 <br />";
        echo "요금은 {$fee}원만 내면 됩니다.<br />";
    } else { // 위의 조건에도 부합하지 안으면 아래의 명령 실행...
        echo "기본 입장료는 5,000원 입니다.<br />";
    }
?>
php image

이번엔 점수에 따른 등급을 지정하는 프로그램입니다.

<?php
    echo "<b> 3과목의 총점과 평균, 등급 구하기</b><br />";

    $math = 100;  //수학
    $elec_circuit = 80;  //전자회로
    $design = 77; // 설계

    $sum = $math + $elec_circuit + $design; // 3개 과목의 합
    $avg = $sum/3; // 세과목을 3으로 나눔 그러면 평균

    echo " math : {$math} <br />";
    echo " electronic circuit : {$elec_circuit} <br />";
    echo " design : {$design} <br />";

    echo " total : {$sum} <br />";
    echo " average : {$avg} <br />";

    echo " your average point ";

    if ($avg >= 95 && $avg<=100) {  // 95이상 100 이하 의 조건을 모두 성립하면 아래의 문장을 출력
        echo "A+";
    }
    else if($avg >= 95 && $avg <=94){ // &&대신에 and쓰셔도 됩니다 .elseif 문이 있기때문에 else 후에 if로 하지 않아서 편하죠? 별로차이 없나 ;;;
echo "A0"; } else if($avg >= 85 && $avg <=94) { echo "B+"; } else if($avg >= 80 && $avg <=84) { echo "B0"; } else if ($avg >= 75 && $avg <=79) { echo "C+"; } else if ($avg >= 70 && $avg <=74) { echo "C0"; } else if ($avg >= 65 && $avg <=69) { echo "D+"; } else if ($avg >= 60 && $avg <=64) { echo "D0"; } else { echo "F"; } ?>

혹시 모르시는 분 있으실까봐

if($a == 100) 이라는 조건에 실행문이 1줄 이상이면 {}로 묶어주시고요

한줄이라면

그냥 쓰시면 됩니다.

예를 들어

if($a == 100){

echo "정말 훌륭하시네요";

echo "다음에도 노력해주세요";

}

위는 저렇게 묶어주시고

if($a ==100)

echo "정말 훌륭하시네요, 다음에도 노력해주세요";

위는 안묶어도 됩니다.

위의 소스의 결과는 아래와 같습니다.

php image