테스트 사이트 - 개발 중인 베타 버전입니다

while(!feof($filename)) 과 continue 채택완료

희망대로 7년 전 조회 3,080

안녕하세요

 

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

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

 

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

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

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

 

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트

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

 

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

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

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

희망대로
7년 전
감사합니다^^

댓글을 작성하려면 로그인이 필요합니다.

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

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

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

 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

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

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

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인