On 04/12/2011 03:15 AM, Daniel Gibson wrote:
While I am on the subject, I've *always* thought major languages have
> poor loop constructs:
>
>
> (A)
>
> for (;;)
> {
> std::getline(is, line);
> if (line.size() == 0)
> break;
> ...some things...
> }
>
(...)
>
> Instead you could just have:
>
> loop
> {
> ...
> if (condition) exit;
> ...
> }
>
> instead of WHILE and DO. Whereby you *must* have an exit condition.
>
>
> But I suppose you need a FOR loop because the following may be error prone.
>
> int x=0;
> loop
> {
> if x> 9 exit;
> ...
> x++;
> }
Yeah. And I guess while-loops also have their uses.
I think just loop like you're suggesting is not available because
for(;;) and while(1) achieve the same thing without too much additional
typing.
I've been thinking of a loop construct allowing either while or until, each
either at start or end, or even both:
loop [(while|until) condition] {
body
} [(while|until) condition]
Side-Note: I favor until over while because I "feel" (for what reason?)
booleans should be initially false, or false by default, thus the end-condition
should express a change and be positive.
loop until end1 {
body
} until end2
ends are initially false
loop while end1 {
body
} while end2
ends are initially true
Denis
--
_________________
vita es estrany
spir.wikidot.com