Issue #13230 has been updated by Shyouhei Urabe.
Status changed from Open to Feedback
I'm sorry but I have to say I don't understand how the construct works. Looking at the original site there is an example:
```cpp
/* author: ncomputers.org */
#include<iostream>
using namespace std;
int main(){
unsigned a[]={0,1,2,3,4,5,6,7,8,9};
do(unsigned b=0){
cout<<a[b];
}while(++b<10){
cout<<',';
}
cout<<endl;
return 0;
}
```
1. At sight, I have no idea what this code does, nor how it works.
2. By closely looking at the description in http://ncomputers.org/examples/do%20while%201.cpp , it says "prints the content of an array, separating each of its elements by a comma". Now I'm totally puzzled. I don't understand why that is possible by the code, especially how the variable `b` changes over time.
Maybe I'm just a hard-headed nuts.
----------------------------------------
Misc #13230: Better Do ... while structure
https://bugs.ruby-lang.org/issues/13230#change-63043
* 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>