while(!feof($filename)) 과 continue 채택완료
안녕하세요
일반적인 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개
잘쓰지 않는 용어를 쓰시는데, 증감부라는게 $i++ 같은걸 얘기하시는건가요?
루프문은 조건이 충족될때까지 순회합니다. 루프문은 모두 continue break 명령이 유효합니다.
eof는 파일포인터의끝 즉 파일의끝을 체크하는 함수입니다. read를 할때마다 파일포인트는 이동됩니다. read 작업전에 continue 하면 eof에 도달하지 않음으로 무한루프가 됩니다. 일단 fgets로 read한후에 조건을 판단하여 continue하셔야합니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
while 문 안에 들어가는 문구는 조건식입니다. false, 0, null 인 경우 종료되게 됩니다.(php 기준)
foef 는 파일의 끝인지를 체크합니다. 앞에 ! 이 붙었으니, 파일의 끝이 아닌 경우가 loop 조건이 됩니다.
결국 저 코드는 파일을 열어서, 파일끝에 도달할때까지 echo 를 하게됩니다.
답변에 대한 댓글 1개
문제는 그 조건의 while안에서도 continue를 하면 그 차례를 건너뛰고 다음번으로 넘어가느냐가 궁금합니다.
continue를 했더니 무한루프가 도는거 같아서요
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인