Re: PHP 4.0 Bug #8428 Updated: continue doesn't pass thru a switch statement

From: Date: Sat, 06 Jan 2001 04:11:01 +0000
Subject: Re: PHP 4.0 Bug #8428 Updated: continue doesn't pass thru a switch statement
References: 1  Groups: php.dev 
Request: Send a blank email to php-dev+get-43107@lists.php.net to get a copy of this message
I should have read your message more carefully :) I have changed the bug report to be a feature request. --zak Cynic wrote: > zak, > > the problem is if != switch in this context. > see > http://marc.theaimsgroup.com/?l=php-dev&m=97875059607513&w=2 > > > > At 04:33 6.1. 2001, zak@php.net wrote the following: > -------------------------------------------------------------- > >ID: 8428 > >Updated by: zak > >Reported By: ocomte@guarantycity.com > >Old-Status: Open > >Status: Bogus > >Bug Type: Unknown/Other Function > >Assigned To: > >Comments: > > > >The switch statement is a flow control construct - like for or if. Because of this continue behaves within switch like it should in any flow control contruct - it skips to the next loop of the construct. However, switch does not loop - so continue behaves like break. > > > >If you would like to use a continue embedded in a switch statement to continue past a loop in an outside control construct, specify how many levels you would like continue to break out of. > > > >Try these examples to see what I mean: > > > ><pre> > ><?php > > for ($i=0; $i<5; ++$i) > > { > > switch(1) > > { > > case 1: > > continue 2; > > break; > > } > > > > echo "Should be skipped"; > > } > > > > // Should not output anything > > > > for ($i=0; $i<5; ++$i) > > { > > for ($z=10; $z>5; --$z) > > { > > switch(1) > > { > > case 1: > > continue 2; > > break; > > } > > echo "\$z=$z\n"; > > } > > echo "\$i=$i\n"; > > } > > > > /* > > Should output: > > $i=0 > > $i=1 > > $i=2 > > $i=3 > > $i=4 > > */ > >?> > > > > > > > > > >Previous Comments: > >--------------------------------------------------------------------------- > > > >[2000-12-26 13:34:59] ocomte@guarantycity.com > >in the script : > ><? > > for($i=0; $i<5; ++$i) > > { switch(1) > > { case 1: > > continue; > > } > > echo "Not printable"; > > } > >?> > > > >the string is printed 5 times because the continue statement end the switch (like break). In C and C++, and in the PHP manual the continue (unlike break) isn't affected by surrounding switch statement and it seems logical to me. > > > > > >--------------------------------------------------------------------------- > > > > > >Full Bug description available at: > >http://bugs.php.net/?id=8428 > > > > > >-- > >PHP Development Mailing List <http://www.php.net/> > >To unsubscribe, e-mail: php-dev-unsubscribe@lists.php.net > >For additional commands, e-mail: php-dev-help@lists.php.net > >To contact the list administrators, e-mail: php-list-admin@lists.php.net > ------end of quote------ > > > > ____________________________________________________________ > Cynic: > > A member of a group of ancient Greek philosophers who taught > that virtue constitutes happiness and that self control is > the essential part of virtue. > > cynic@mail.cz > >

« previous php.dev (#43107) next »