'while/else' (ugh) (was Re: [oclug] Ruby)
Matthew Wilcox
willy at debian.org
Fri Jun 27 16:37:04 EDT 2003
On Fri, Jun 27, 2003 at 04:27:30PM -0400, Patrick Smith wrote:
> OK, that makes sense. I presume you also intend for the finally clause
> to be executed even if the while is exited by a break. So it replaces:
>
> cleanup_needed = false
> while condition
> blah
> side effects
> cleanup_needed = true
> blah
> if cleanup_needed
> cleanup
>
> Personally, I suspect this wouldn't be used often enough to justify
> adding another construct to the language, given that it is so easy to do
> otherwise.
Not only that, you often want the variable outside the loop anyway. To
take the freeing memory example ...
if (condition)
ptr = malloc(1MB);
do {
stuff(ptr);
condition--;
} while (condition);
free(ptr);
i'm really not sure how much there is to cleanup if you didn't have to
setup before the first loop iteration. anyone got a real example?
--
"It's not Hollywood. War is real, war is primarily not about defeat or
victory, it is about death. I've seen thousands and thousands of dead bodies.
Do you think I want to have an academic debate on this subject?" -- Robert Fisk
More information about the OCLUG
mailing list