# While loop : execute code and THEN check condition

**URL:** <https://www.ruby-forum.com/t/while-loop-execute-code-and-then-check-condition/147928>\
**Category:** Ruby\
**Created:** [September 7, 2008, 5:49am UTC](https://www.ruby-forum.com/t/while-loop-execute-code-and-then-check-condition/147928 "2008-09-07T05:49:22Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![scudco](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/aca169/32.png) [@scudco](https://www.ruby-forum.com/u/scudco)\
**Post date:** [September 7, 2008, 5:49am UTC](https://www.ruby-forum.com/t/while-loop-execute-code-and-then-check-condition/147928/1 "2008-09-07T05:49:22Z")

</div>

Im sure this was possible in C but in ruby i couldnt find something  
similiar.

I want a control structure which will execute the code first and then  
check if the condition is true or not. something like

do

something

while (condition)

---

<div class="post-metadata">

**Author:** ![scudco](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/aca169/32.png) [@scudco](https://www.ruby-forum.com/u/scudco)\
**Post date:** [September 7, 2008, 6:12am UTC](https://www.ruby-forum.com/t/while-loop-execute-code-and-then-check-condition/147928/2 "2008-09-07T06:12:05Z")

</div>

Adam A. wrote:

> while (condition)  
> begin  
> something  
> end while condition

---

<div class="post-metadata">

**Author:** ![scudco](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/aca169/32.png) [@scudco](https://www.ruby-forum.com/u/scudco)\
**Post date:** [September 7, 2008, 6:13am UTC](https://www.ruby-forum.com/t/while-loop-execute-code-and-then-check-condition/147928/3 "2008-09-07T06:13:51Z")

</div>

2008/9/7 Adam A. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> ## while (condition)
> 
> Posted via [http://www.ruby-forum.com/](http://www.ruby-forum.com/).

begin  
something  
end while condition

Or

begin  
something  
end until condition

Regards,

Park H.

---

<div class="post-metadata">

**Author:** ![scudco](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/aca169/32.png) [@scudco](https://www.ruby-forum.com/u/scudco)\
**Post date:** [September 7, 2008, 12:25pm UTC](https://www.ruby-forum.com/t/while-loop-execute-code-and-then-check-condition/147928/4 "2008-09-07T12:25:20Z")

</div>

Although  
begin  
…  
end while condition

is the idiomatic way to do this I often write my loops as follows

loop do  
…  
break if/unless condition  
…  
end

I prefer it even more if my code can be refactored to

loop do  
…  
return …  
…  
end

Cheers  
Robert

–  
C’est véritablement utile puisque c’est joli.

Antoine de Saint Exupéry
