Issue #13230 has been updated by Nobuyoshi Nakada.


Probably it equals:

```cpp
    unsigned b=0;
    do {
        cout<<a[b];
        if (!(++b<10)) break;
        cout<<',';
    } while (1);
```

or

```cpp
    for (unsigned b=0; cout<<a[b], (++b<10);) {
        cout<<',';
    }
```

If it were in Ruby:

```ruby
b = 0
while true
  STDOUT << a[b]
  break unless (b += 1) < 10
  STDOUT << ','
end
```

```ruby
b = 0
while (STDOUT << a[b]; (b += 1) < 10)
  STDOUT << ','
end
```

```ruby
b = 0
while begin
    STDOUT << a[b]
    (b += 1) < 10
  end
  STDOUT << ','
end
```


----------------------------------------
Misc #13230: Better Do ... while structure
https://bugs.ruby-lang.org/issues/13230#change-63044

* Author: Jabari Zakiya
* Status: Feedback
* Priority: Normal
* Assignee: 
----------------------------------------
I just saw this, and thought I'd pass it along.

http://ncomputers.org/suggestions/do%20while.cpp

```
Do ... while structure improvement
Sometimes the use of jumps such as: continue, break, goto, call to a function, etc. is necessary to avoid the execution of some instructions.

This is the case of the seed, warp and swap loops of this solution for the n queens problem.

To avoid the use of jumps or tricks like for(;;) if(condition)break; on some of these cases, we are suggesting the below improvement to the do ... while loop str


/* author: ncomputers.org */
int main(){
    // Allow initializers (extra improvement)
    do(bool condition=0){
        // Block A
    }while(condition){
        // Block B
        // Variables declared inside the initializer still visible
    }
    return 0;
}
```



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>