(제어문) 기타문장 continue문 bleak문

· 댓글 : 0 조회 : 1804 · 0

continue 문

 

continue 문은 반복문 내부에서 continue 문 아래에 오게 되는 나머지 명령의 수행은 생략하고 조건을 검사하기 위한 조건식으로 돌아가 조건을 검사한 후 다음 반복문을 시작하게된다

-------------------------------------------------------------------------------------------------------------------------------

<?php
$add = array(
     "길동" => array("동아리"=>"수영","학년"=>1,"학과"=>"컴퓨터"),
     "몽룡" => array("동아리"=>"수영","학년"=>2,"학과"=>"물리"),
     "춘향" => array("동아리"=>"테니스","학년"=>2,"학과"=>"컴퓨터"),
     "홍도" => array("동아리"=>"낚시","학년"=>3,"학과"=>"화학"),
     "윤복" => array("동아리"=>"테니스","학년"=>3,"학과"=>"물리"),
     "장금" => array("동아리"=>"낚시","학년"=>2,"학과"=>"생물"),
     "준영" => array("동아리"=>"등산","학년"=>4,"학과"=>"물리"),
     "영실" => array("동아리"=>"테니스","학년"=>3,"학과"=>"컴퓨터"),
     "준표" => array("동아리"=>"등산","학년"=>2,"학과"=>"화학")
     );

echo "

테니스 동아리 학생들

";
foreach ($add as $name => $values) {
 $stu = each($values); 
 if($stu[value] != "테니스") continue;
 echo "[ $name ] ::
";
 while (list($k, $v) = each($values)) {
  echo "$k -> $v ||";
  }
  echo "
";
  echo "
";
 }

------------------------------------------------------------------------------------------------------------------

continue의 설명을 다시 보자고 하자면은

continue 문 아래에 오게 되는 나머지 명령의 수행은 생략하고 조건을 검사하기 위한 조건식으로

돌아가 조건을 검사한 후 다음 반복문을 시작하게된다 라고 설명이 되어있습니다.

참 어렵게 설명되어있습니다. -_-;;

 

간단히 설명하자고 하면은 이렇습니다.

$name2= $name;

if($name2 == "면빨") continue;

echo $name;

 

라고 하면은 원래는 면빨이라는 답이 참이면 출력하여라인데

continue가 붙어서 면빨이라는 답을 제외시키고 (생략시키고) 나머지를 출력하여라 가 되겠습니다.

 

 

면빨이란 부분만 출력시키게하기위해선 조건문이

$name2= $name;

if($name2 != "면빨") continue;

echo $name;

 

이렇게 되는것입니다.

면빨이란 말이 거짓이면 참이다 이기때문에 면빨을 제외하고 출력되겠죠

continue가 붙었기 때문에 값이 면빨이 아닌부분을 출력해야되는데 이 출력되는 부분을 제외시키고 출력하게되면 면빨만

출력하게 되겠습니다.

 

어떻게 간단히 이야기 하자면 반대부분인데 생략이란 부분과 반대라는 말은 많이 틀립니다.

간단히 이해를 위해서 이렇게 설명해놓은겁니다.

 

이제 윗 예제 프로그램을 설명하도록 하겠습니다.

---------------------------------------------------------------------------------------------------------------

배열변수를 보시게되면은

배열 (이름 => 배열 (학생정보)) 입니다.

배열문이 2번 반복되었기때문

foreach와 while(list()=>each())를 사용해서 각 학생의 정보를 뽑아내는 프로그램입니다.

 

foreach ($add as $name => $values) {  // 학생이름과 학생 정보로 배열이 나뉘었습니다.

 

$stu = each($values);   // each함수를 써서 $stu 변수에 키와 값으로 나누어 학생정보 첫번째 원소인 동아리의 값을 저장하였습니다.

 

 if($stu[value] != "테니스") continue;  // continue부분은 윗 설명보시면 이해하실겁니다.

                                                         $stu[value] // $stu의 배열의 동아리의 값부분을 선택한것입니다.

                                                         테니스 값이 참이 아닌것만 출력하여라 을 생략시켰습니다.

                                                         또한 동아리의 첫번째 원소 키와 값이 제외되고 출력이 됩니다.

                                         

while (list($k, $v) = each($values)) {  // 학생정보의 배열 변수인 $values의 값이
  echo "$k -> $v ||";                              아래의 변수로 배정되어 반복출력이 됩니다.    
                                                          continue로 인하여 동아리의 첫번째 원소의 생략되어 출력과 동아리의 값 테니스값이 생략되고

                                                          나머지가 출력하게 되는것입니다.

 

------------------------------------------------------------------------------------------------------------------

출력결과

 

[ 춘향 ] ::
학년 -> 2 ||학과 -> 컴퓨터 ||

[ 윤복 ] ::
학년 -> 3 ||학과 -> 물리 ||

[ 영실 ] ::
학년 -> 3 ||학과 -> 컴퓨터 ||

첫번째 원소 생략과 첫번째 원소의 값 테니스가 해당되는 배열은 생략되고 출력이 되는 것입니다.

-----------------------------------------------------------------------------------------------------------------

 

bleak 문

if($add == 99) bleak;

bleak문은 윗 조건문을 예를 들어 설명하자하면

99의 값이 나오면은 반복문에서 벗어나라 가 되겠습니다.

 

더 자세히 설명하자하면은

if($add[$i][0] == 99) bleak;

배열의 [$i][0]의 값이 99가 있으면은 반복문이 실행이 안됩니다.

첫번째 99값이 있는 부분만 빼고서 나머지 반복문은 실행됩니다.

예)

array(

        array(12, 353, 654, 656)

        array(11, 353, 654, 656)

        array(13, 353, 654, 656)

        array(99, 353, 654, 656)

);

의 배열이 있다고하면은 [$i][0]==99 조건문에 의해  array(99, 353, 654, 656)의 배열만 빼고 나머지 배열은 반복문을 실행하게됩니다.

 

--------------------------------------------------------------------------------------------------------------

 

제어문에 관련되어서 모두 설명을 하게 되었습니다.

 

이 다음부터는 함수부분이 기제되겠습니다.

함수부분은

함수정의, 전역변수, 지역변수, 정적변수, 내장함수 등으로 내용이 구성되어 있습니다.

 

점점 내용이 많아지니 전부 응용해볼려다보니까 머리가 아퍼지네요 ㅋㅋㅋ

 

통계분석을 위해 매체별 전용URL 사용해주세요.
불타는면빨님의 포스트
최근 리스트
리스트가 없습니다.