Loops/While: Difference between revisions

From Rosetta Code
Content added Content deleted
(JavaScript, Logo, Forth)
Line 48: Line 48:
n/=2;
n/=2;
}
}
for (n=1024; n>0; n/=2)
print(n);


=={{header|Logo}}==
=={{header|Logo}}==

Revision as of 16:31, 14 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;
}

Forth

: halving ( n -- )
  begin  dup 0 >
  while  cr dup .  2/
  repeat drop ;
1024 halving

Java

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

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

}</java>

JavaScript

var n = 1024;
while (n>0) {
 print(n);
 n/=2;
}

make "n 1024
while [:n > 0] [print :n  make "n :n / 2]

Via tail recursion:

to halves :n
  if :n = 0 [stop]
  print :n
  halves :n / 2
end