Loops/Continue: Difference between revisions

From Rosetta Code
Content added Content deleted
(added php)
Line 182: Line 182:
=={{header|UnixPipes}}==
=={{header|UnixPipes}}==
yes \ | cat -n | head -n 10 | xargs -n 5 echo | tr ' ' ,
yes \ | cat -n | head -n 10 | xargs -n 5 echo | tr ' ' ,

=={{header|Visual Basic .NET}}==

For i = 1 To 10
Console.Write(i)
If i Mod 5 = 0 Then
Console.WriteLine()
Else
Console.Write(", ")
End If
Next

Revision as of 04:43, 25 December 2008

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

Show the following output using one loop.

1, 2, 3, 4, 5
6, 7, 8, 9, 10

Ada

Ada has no continue reserved word, nor does it need one. The continue reserved word is only syntactic sugar for operations that can be achieved without it as in the following example.

<ada> with Ada.Text_Io; use Ada.Text_Io;

procedure Loop_Continue is begin

  for I in 1..10 loop
     Put(Integer'Image(I));
     if I mod 5 = 0 then
        New_Line;
     else
        Put(",");
     end if;
  end loop;

end Loop_Continue; </ada>

C

Translation of: C++

<c>for(int i = 1;i <= 10; i++){

  printf("%d", i);
  if(i % 5 == 0){
     printf("\n");
     continue;
  }
  printf(", ");

}</c>

C++

Translation of: Java

<cpp>for(int i = 1;i <= 10; i++){

  cout << i;
  if(i % 5 == 0){
     cout << endl;
     continue;
  }
  cout << ", ";

}</cpp>

ColdFusion

Remove the leading space from the line break tag.

<cfscript>
  for( i = 1; i <= 10; i++ )
  {
    writeOutput( i );
    if( 0 == i % 5 )
    {
      writeOutput( "< br />" );
      continue;
    }
    writeOutput( "," );
  }
</cfscript>

D

<d>for(int i = 1;i <= 10; i++){

 writef(i);
 if(i % 5 == 0){
   writefln();
   continue;
 }
 writef(", ");

}</d>

Fortran

Works with: Fortran version 90 and later
DO i = 1, 10
  IF (MOD(i, 5) == 0) THEN
    WRITE(*, "(I0)") i
  ELSE
    WRITE(*, "(I0,A)", ADVANCE="NO") i, ", "
  ENDIF
END DO

J

J is array-oriented, so there is very little need for loops. For example, one could satisfy this task this way:

_2}."1'lq<, >'8!:2>:i.2 5

J does support loops for those times they can't be avoided (just like many languages support gotos for those time they can't be avoided).

   3 : 0 ] 10 
        z=.''
        for_i. 1 + i.y do.
            z =. z , ": i

             if. 0 = 5 | i do.
                  z 1!:2 ]2 
                  z =. ''
                  continue. 
             end. 

             z =. z , ', '
        end.
     i.0 0
   )

Though it's rare to see J code like this.


Java

<java>for(int i = 1;i <= 10; i++){

  System.out.print(i);
  if(i % 5 == 0){
     System.out.println();
     continue;
  }
  System.out.print(", ");

}</java>

MAXScript

for i in 1 to 10 do
(
    format "%" i
    if mod i 5 == 0 then
    (
        format "\n"
        continue
    )   continue
    format ", "
)

Perl

<perl>foreach (1..10) {

   print $_;
   if ($_ % 5 == 0) {
       print "\n";
       next;
   }
   print ', ';

}</perl>

PHP

<php>for ($i = 1; $i <= 10; $i++) {

   echo $i;
   if ($i % 5 == 0) {
       echo "\n";
       continue;
   }
   echo ', ';

}</php>

Pop11

lvars i;
for i from 1 to 10 do
   printf(i, '%p');
   if i rem 5 = 0 then
       printf('\n');
       nextloop;
   endif;
   printf(', ')
endfor;

Python

<python>for i in xrange(1,11):

   if i % 5 == 0:
       print i
       continue
   print i, ",",</python>

Ruby

for i in 1..10 do

  print i
  if i % 5 == 0 then
     puts
     next
  end
  print ', '

end

UnixPipes

yes \ | cat -n | head -n 10 | xargs -n 5 echo | tr ' ' ,

Visual Basic .NET

       For i = 1 To 10
           Console.Write(i)
           If i Mod 5 = 0 Then
               Console.WriteLine()
           Else
               Console.Write(", ")
           End If
       Next