Loops/While: Difference between revisions

From Rosetta Code
Content added Content deleted
(Added Ada)
Line 28: Line 28:
}</pre>
}</pre>


=={{header|Haskell}}==


Introducing and especially updating a loop variable requires side effects. So it's simpler to just create a list of the required values, and then loop over it to print them. However, that doesn't really reflect the structure of the imperative solutions.

<pre>
mapM print $ takeWhile (>0) $ iterate (`div` 2) 1024
</pre>


=={{header|Java}}==
=={{header|Java}}==

Revision as of 01:52, 13 April 2008

Task
Loops/While
You are encouraged to solve this task according to the task description, using any language you may know.

Start a value at 1024. Loop while it is greater than 0. Print the value (with a newline) and divide it by two each time through the loop.

Ada

<ada> declare

  I : Integer := 1024;

begin

  while I > 0 loop
     Put_Line(Integer'Image(I));
     I := I / 2;
  end loop;

end; </ada>

BASIC

Works with: QuickBasic version 4.5

<qbasic>i = 1024 while i > 0

  print i
  i = i / 2

wend</qbasic>

C

int i = 1024;
while(i > 0) {
  printf("%d\n", i);
  i /= 2;
}


Java

<java>int i = 1024; while(i > 0){

  System.out.println(i);
  i >>= 1; //also acceptable: i /= 2;

}</java>