[입문자용 강좌]제어구조 (if, else if, else) > 퍼블리셔팁

퍼블리셔팁

퍼블리싱과 관련된 유용한 정보를 공유하세요.
질문은 상단의 QA에서 해주시기 바랍니다.

[입문자용 강좌]제어구조 (if, else if, else) 정보

HTML [입문자용 강좌]제어구조 (if, else if, else)

첨부파일

제어구조1.hwp (64.0K) 51회 다운로드 2007-02-14 16:39:17

본문

[제어구조 (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 구문에서는 형태를 동일하게 합니다.<div class='small'>[이 게시물은 관리자님에 의해 2011-10-31 17:12:10 PHP & HTML에서 이동 됨]</div>
추천
0

댓글 19개

else if 는 상위의 if 문이나 else if문의 조건절이 모두 false 일경우에 실행되며
새로운 조건문을 갖는 if문의 형태를 갖습니다.

이 문장을 좀 좀 더 풀어서 설명 부탁합니다.

아~  제 머리는 왜 왜 왜 이리 나뿐건지 참..저도 이해가 않갑니다.  지송요...!  ~..~

그리고
1)은

현재 $a 의 값은5 입니다.
현재 $b 의 값은3 입니다.
$a 가 $b보다 크다 가 참일때 이 문장이 출력됩니다.
현재 $a 의 값은3입니다.
현재 $b 의 값은5입니다.
$a 가 $b보다 작다 가 참일때 이 문장이 출력됩니다.

이렇게 출력되면 맞는 것인지요.
질문이 있엇네요?

네 저 부분의 설명이 어려운가요?

위에서 설명했듯이 if 문은 조건이 참일 경우에만 실행됩니다.
조건이 거짓이면 if의 구문은 실행하지 않고 통과 하게 됩니다.

이것까진 이해 되시죠?

다음의 것을 그대로 복사하여 파일로 만들어서 웹에서 확이하여 봅니다.

<?php

$a = 5;

else if ($a == 5) {

 echo '$a 의 값은 5입니다.';
}

?>

테스트 해보셨나요?

에러가 나지요?

다시 이파일을 지우고

아래와 같이 작성한다음 저장하여 확인해봅니다.

<?php

$a = 5;

else if ($a == 5) {

 echo '$a 의 값은 5입니다.';
}

?>

이것 역시 에러가 나지요?

else if 나 else는

단독으로 사용될수 없고 바로 위에 if 나 else if로 된 구문이 있어야 합니다.

그러니까 if 문은 혼자서 사용될수 있고

else if 나 else는 반드시 if 와 쌍을 이루어야 만 사용할수 있습니다.

또 아까 작성한 파일을 지우고

아래것을 그대로 복사하여 저장하여봅니다.

<?php

if ($a < 5 ) {

  echo '$a 의 값은 5보다 작습니다.';
}
else if ($a > 5) {

 echo '$a 의 값은 5보다 큽니다.';
}
else {

 echo '$a 의 값은 5입니다.';
}

?>

이해가 되시나요?

맨위에 if 구문에서 $a 가 5보다 작은지 비교하여 거짓이기 때문에

아래로 넘어갑니다.

또 else if 구문에서 $a 가 5보다 큰지 비교하여 거짓이기 때문에

아래로 넘어갑니다.

else 구문은 if 구문의 젤 마지막에 사용되며

상위의 if문이나 else if 구문의 조건이 모두 거짓일때만 실행됩니다.

따라서 $a 의 값은 5입니다. 가 출력되게 됩니다.

아직도 이해가 되지 않는다면

다음의 것도 복사해서 새로 저장해봅니다.

<?php

if ($a < 5 ) {

  echo '$a 의 값은 5보다 작습니다.';
}
else if ($a == 5) {

 echo '$a 의 값은 5입니다.';
}
else {

  echo '$a 의 값은 5보다 큽니다.';
}

?>

확인해보면

역시 아까 같이 $a 의 값은 5입니다.라고 보이죠

그러나 if문의 내용을 보면 아까와 다릅니다.

첫번째 if 구문은 동일하며 거짓입니다.

아래로 내려갑니다.

else if 구문의 조건은 $a 와 5와 같냐고 비교하여 참이기 때문에

아래로 내려가지 않고

그 위치에 있는 구문이 실행됩니다.

만약,

아직도 이해가 되지 않는다면

처음 부터 천천히 살펴보시기 바랍니다.
이 구문에서

<?php

if ($a < 5 ) {

  echo '$a 의 값은 5보다 작습니다.';  <=참이 맞지안나요..?
}
else if ($a == 5) {

 echo '$a 의 값은 5입니다.';  <=이것도 참이고요.
}
else {

  echo '$a 의 값은 5보다 큽니다.';
}

?>
이 구문을 실행하면 
 
$a 의 값은 5보다 작습니다. 
 
이렇게 출력이 되는데
첫번째 참을 인지하면 두번째 참이 있어도 첫번째 참만 출력하나요..?


if else if else 구문에서는 상위의 것이 참이면

아래 것은 실행하지 않습니다.

그리고 위의 예제에서 에러는 나지 않지만

$a에 대해서 정의하지 않았기 때문에

제대로 된 예제가 아닙니다.

$a = 값;

이런식으로 지정하고 사용하세요
전체 797
퍼블리셔팁 내용 검색 HTML에서

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT