while(!feof($filename)) 과 continue

while(!feof($filename)) 과 continue

QA

while(!feof($filename)) 과 continue

본문

안녕하세요

 

일반적인 while문에서는 while문 하단부에 증감부(예를 들면$i++)가있어서 루프를 다음 으로 돌리는데

그러한 상태에서 continue는 제대로 다음으로 넘어가게 한다는 거을 알고있는데

 

while(!feof($filename)) 문에서는 안에 증감부가 없이  continue 가 그 다음으로 넘어가게 하나요?

아래의 while문에는 분명 증감부가 없는데 아래같은 while문에도 continue가 적용되는가요?

<?php
$myfile = fopen("webdictionary.txt", "r") or die("열지못함");
while(!feof($myfile)) {
  echo fgets($myfile) . "<br>";
}
fclose($myfile);
?>

 

이 질문에 댓글 쓰기 :

답변 2

잘쓰지 않는 용어를 쓰시는데, 증감부라는게 $i++ 같은걸 얘기하시는건가요?

 

루프문은 조건이 충족될때까지 순회합니다. 루프문은 모두 continue break 명령이 유효합니다.

eof는 파일포인터의끝 즉 파일의끝을 체크하는 함수입니다. read를 할때마다 파일포인트는 이동됩니다. read 작업전에 continue 하면 eof에 도달하지 않음으로 무한루프가 됩니다. 일단 fgets로 read한후에 조건을 판단하여 continue하셔야합니다.

 

while 문 안에 들어가는 문구는 조건식입니다. false, 0, null 인 경우 종료되게 됩니다.(php 기준)

foef 는 파일의 끝인지를 체크합니다. 앞에 ! 이 붙었으니, 파일의 끝이 아닌 경우가 loop 조건이 됩니다.

결국 저 코드는 파일을 열어서, 파일끝에 도달할때까지 echo 를 하게됩니다.

 

 

그러니까 저위의 while(!feof($myfile)) 문에서도 증감부가 적용된다는 것인데
문제는 그 조건의 while안에서도 continue를 하면 그 차례를 건너뛰고 다음번으로 넘어가느냐가 궁금합니다.

continue를 했더니 무한루프가 도는거 같아서요

답변을 작성하시기 전에 로그인 해주세요.
전체 123,622 | RSS
QA 내용 검색

회원로그인

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