[제어구조 (if, else if, else)]

# 본내용은 스킨제작을 목적으로 하는 분들을 위한 입문자용 기본 강좌입니다.

# 입문자가 쉽게 php를 느낄수 있도록 되도록 간추려서 쉽게 구성한 강좌입니다.

# 입문자가 아니면 보실 필요가 없습니다.

# 강좌의 순서는 입문자가 쉽게 와닿을수 있도록 임의로 조정했습니다.

# 강좌는 누구나 읽고 사용할수 있지만, 다른 책의 내용으로 포함될수 없습니다.

1. 제어구조란?

제어구조란 쉽게 설명하면,

말그대로 제어한다. 조정한다. 통재한다의 의미를 갖습니다.

즉, 프로그램의 흐름을 제어하고 통재하기 위해서

php에서 규칙을 정해 놓은 것입니다.

같은 모양의 프로그램이라도

데이터 100개에 느려지는것, 1000개에 느려지는 것.......

아주 고성능을 발휘하는것의 차이가 있습니다.

프로그램의 성능을 결정짓게 만드는 데에 가장 핵심이 되는 것이

제어구조입니다.

어떤 위치에서 어떤 제어구조를 어떻게 사용했냐에 따라서

프로그램 성능이 달라집니다.

잘 숙지하시기 바랍니다.

2. 제어구조의 종류

여기서는 많이 쓰이는 제어구조만 다루고자 합니다.

이유는 기초과정을 익히는 데 현재 잘 사용하지 않는 것까지 이해하려다

전체를 이해하기 힘든 상황으로 빠지지 않기 위해서 입니다.

나중에 실력이 향상되어 중급프로그래밍이 가능해지면

매뉴얼을 통해 더 세부적으로 공부하도록 합니다.

1) if

if는 php프로그램에서 for문과 함께 가장 많이 쓰이는 제어구문중 하나입니다.

농담으로

‘if와 for문만 알면 못만드는게 없다’

라고 할 정도로 아주 많이 사용됩니다.

프로그램이라는 것이 영어권에서 만들어졌기 때문에

영어 단어를 이해하면 도움이 될 때가 많습니다.

영어 숙어 중에 if ~ then ~

if 다음에는 조건절이 오고 then 다음에 어떻게 한다라는 뜻이지요?

전 영어는 잘모르는데 영어로 설명할려니 쑥스럽네요. ㅎㅎ

php에서도 if ( 조건문 ) { 실행문 }

형태를 가집니다.

() 의 조건문이 참이면 {} 안의 실행문을 실행하는 것입니다.

다음의 예제를 확인하여 봅니다.

<?php

$a = 5;//$a라는 변수에 숫자 5를 대입합니다.

$b = 3;//$b라는 변수에 숫자 3을 대입합니다.

//현재의 $a 와 $b의 값을 출력하여 본다.

echo '현재 $a 의 값은 ‘ . $a . ' 입니다. <br>';

echo '현재 $b 의 값은 ‘ . $b . ' 입니다. <br>';

if ($a > $b) {

echo '$a 가 $b보다 크다 가 참일때 이 문장이 출력됩니다. <br>';

$a = 3;

$b = 5;

}

//현재의 $a 와 $b의 값을 출력하여 본다.

echo '현재 $a 의 값은 ‘ . $a . ' 입니다. <br>';

echo '현재 $b 의 값은 ‘ . $b . ' 입니다. <br>';

if ($a < $b) {

echo '$a 가 $b보다 작다 가 참일때 이 문장이 출력됩니다. <br>';

}

?>

위의 예문에서 보면

변수 $a 에는 5를 대입하고,

변수 $b 에는 3을 대입하였습니다.

첫 번째 if 의 조건문에서 --> () 안의 문장이 조건 문입니다.

$a > $b 라고 되어있습니다.

$a 에는 5가 대입되어 있고, $b에는 3이 대입되어있기 때문에

$a 가 $b보다 큰 것이 맞습니다. 즉, 이전 연산자에서 설명했듯이

연산자는 연산의 결과를 돌려주므로, 참(true)을 돌려받게 됩니다.

if문은 위에서 설명하였듯이 ()안의 조건문이 참일 경우에만

{} 안의 구문이 실행되므로

화면에는 $a 가 $b보다 크다 가 참일때 이 문장이 출력됩니다. 라는 문구가 출력이

됩니다.

그리고 변수 $a 에는 3을, 변수 $b 에는 5를 각각 새롭게 대입합니다.

두 번째 if 의 조건문에서 --> () 안의 문장이 조건 문입니다.

$a < $b 라고 되어있습니다.

$a 에는 3이 대입되어 있고, $b에는 5가 대입되어있기 때문에

$a 가 $b보다 작다는 것이 맞습니다. 즉, 이전 연산자에서 설명했듯이

연산자는 연산의 결과를 돌려주므로, 참(true)을 돌려받게 됩니다.

if문은 위에서 설명하였듯이 ()안의 조건문이 참일 경우에만

{} 안의 구문이 실행되므로

화면에는 $a 가 $b보다 작다 가 참일때 이 문장이 출력됩니다. 라는 문구가 출력이

됩니다

만약, 이해가 되지 않는다면

스스로가 다른 형태의 예제를 만들어서 여러각도로 확인하여 봅니다.

2) else if

else if 는 상위의 if 문이나 else if문의 조건절이 모두 false 일경우에 실행되며

새로운 조건문을 갖는 if문의 형태를 갖습니다.

else if 는 단독으로 사용될수 없습니다.

반듯이 바로 위에 if 구문이나 else if 구문이 존재하여야 합니다.

<?php

$a = 5;//$a라는 변수에 숫자 5를 대입합니다.

$b = 3;//$b라는 변수에 숫자 3을 대입합니다.

//현재의 $a 와 $b의 값을 출력하여 본다.

echo '현재 $a 의 값은 ‘ . $a . ' 입니다. <br>';

echo '현재 $b 의 값은 ‘ . $b . ' 입니다. <br>';

if ($a > $b) {

echo '$a 가 $b보다 크다 가 참일때 이 문장이 출력됩니다. <br>';

}

else if ($a < $b) {

echo '$a 가 $b보다 작다 가 참일때 이 문장이 출력됩니다. <br>';

}

$a = 3;//$a라는 변수에 숫자 5를 대입합니다.

$b = 5;//$b라는 변수에 숫자 3을 대입합니다.

//현재의 $a 와 $b의 값을 출력하여 본다.

echo '현재 $a 의 값은 ‘ . $a . ' 입니다. <br>';

echo '현재 $b 의 값은 ‘ . $b . ' 입니다. <br>';

if ($a > $b) {

echo '$a 가 $b보다 크다 가 참일때 이 문장이 출력됩니다. <br>';

}

else if ($a < $b) {

echo '$a 가 $b보다 작다 가 참일때 이 문장이 출력됩니다. <br>';

}

?>

3) else

else 는 상위의 if 문이나 else if문의 조건절이 모두 false 일경우에 실행되며

조건문은 같지 않고 실행문만을 갖습니다

else 는 단독으로 사용될수 없습니다.

반듯이 바로 위에 if 구문이나 else if 구문이 존재하여야 합니다.

else 구문 다음에 다시 else 구문이 올수 없습니다.

<?php

$a = 5;//$a라는 변수에 숫자 5를 대입합니다.

$b = 5;//$b라는 변수에 숫자 3을 대입합니다.

//현재의 $a 와 $b의 값을 출력하여 본다.

echo '현재 $a 의 값은 ‘ . $a . ' 입니다. <br>';

echo '현재 $b 의 값은 ‘ . $b . ' 입니다. <br>';

if ($a > $b) {

echo '$a 가 $b보다 크다 가 참일때 이 문장이 출력됩니다. <br>';

}

else if ($a < $b) {

echo '$a 가 $b보다 작다 가 참일때 이 문장이 출력됩니다. <br>';

}

else {

echo '$a 가 $b보다 크지 않고 $a 가 $b보다 작지 않을때, ‘;

echo '즉 $a 와 $b 가 같을때 이문장이 출력됩니다.';

}

?>

###참고

약식 표현

if 문이나 else if 문이나 else 문이나

한줄짜리 실행문을 가지고 있으면 {}는 생략가능합니다.

<?php

$a = 5;//$a라는 변수에 숫자 5를 대입합니다.

$b = 5;//$b라는 변수에 숫자 3을 대입합니다.

//현재의 $a 와 $b의 값을 출력하여 본다.

echo '현재 $a 의 값은 ‘ . $a . ' 입니다. <br>';

echo '현재 $b 의 값은 ‘ . $b . ' 입니다. <br>';

if ($a > $b) {

echo '$a 가 $b보다 크다 가 참일때 이 문장이 출력됩니다. <br>';

}

else if ($a < $b) {

echo '$a 가 $b보다 작다 가 참일때 이 문장이 출력됩니다. <br>';

}

else {

echo '$a 가 $b보다 크지 않고 $a 가 $b보다 작지 않을때, 즉 $a 와 $b 가 같을때 이문장이 출력됩니다.';

}

//위의 if 문을 아래와 같이 사용할수도 있습니다.

if ($a > $b)

echo '$a 가 $b보다 크다 가 참일때 이 문장이 출력됩니다. <br>';

else if ($a < $b)

echo '$a 가 $b보다 작다 가 참일때 이 문장이 출력됩니다. <br>';

else

echo '$a 가 $b보다 크지 않고 $a 가 $b보다 작지 않을때, 즉 $a 와 $b 가 같을때 이문장이 출력됩니다.';

//위의 if 문을 아래와 같이 사용할수도 있습니다.

if ($a > $b) echo '$a 가 $b보다 크다 가 참일때 이 문장이 출력됩니다. <br>';

else if ($a < $b) echo '$a 가 $b보다 작다 가 참일때 이 문장이 출력됩니다. <br>';

else echo '$a 가 $b보다 크지 않고 $a 가 $b보다 작지 않을때, 즉 $a 와 $b 가 같을때 이문장이 출력됩니다.';

?>

그런데 중요한 것은 하나의 if else 구문에서

위에서 중괄호를 빼고 사용했다면 그아래 else if 나 else 역시 모두 중괄호를 빼고 사용해야 합니다.

위에서 중괄호를 넣고 사용했다면 그라애 else if 나 else 역시 모두 중괄호를 넣고 사용해야 합니다.

물론 다르게 하여도 에러는 나지 않지만,

자신도 모르게 잘 못된 결과를 가져올수도 있습니다.

즉 에러는 나지 않더라도,

하나의 if else 구문에서는 형태를 동일하게 합니다.