Loops/Continue: Difference between revisions
No edit summary |
(→{{header|Fortran}}: this version show the existence and use of cycle) |
||
Line 88: | Line 88: | ||
=={{header|Fortran}}== |
=={{header|Fortran}}== |
||
{{works with|Fortran|90 and later}} |
{{works with|Fortran|90 and later}} |
||
DO i = 1, 10 |
|||
<lang fortran>do i = 1, 10 |
|||
⚫ | |||
write(*, '(I0)', advance='no') i |
|||
⚫ | |||
ELSE |
|||
write(*,*) |
|||
WRITE(*, "(I0,A)", ADVANCE="NO") i, ", " |
|||
cycle |
|||
end if |
|||
END DO |
|||
write(*, '(A)', advance='no') ', ' |
|||
end do</lang> |
|||
=={{header|J}}== |
=={{header|J}}== |
Revision as of 23:55, 17 February 2009
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.
<lang 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; </lang>
ALGOL 68
ALGOL 68 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:
FOR i FROM 1 TO 10 DO print ((i, IF i MOD 5 = 0 THEN new line ELSE "," FI )) OD
Output:
+1, +2, +3, +4, +5 +6, +7, +8, +9, +10
C
<lang c>for(int i = 1;i <= 10; i++){
printf("%d", i); if(i % 5 == 0){ printf("\n"); continue; } printf(", ");
}</lang>
C++
<lang cpp>for(int i = 1;i <= 10; i++){
cout << i; if(i % 5 == 0){ cout << endl; continue; } cout << ", ";
}</lang>
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
<lang d>for(int i = 1;i <= 10; i++){
writef(i); if(i % 5 == 0){ writefln(); continue; } writef(", ");
}</lang>
Fortran
<lang fortran>do i = 1, 10
write(*, '(I0)', advance='no') i if ( mod(i, 5) == 0 ) then write(*,*) cycle end if write(*, '(A)', advance='no') ', '
end do</lang>
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
<lang java>for(int i = 1;i <= 10; i++){
System.out.print(i); if(i % 5 == 0){ System.out.println(); continue; } System.out.print(", ");
}</lang>
MAXScript
for i in 1 to 10 do ( format "%" i if mod i 5 == 0 then ( format "\n" continue ) continue format ", " )
Modula-3
Modula-3 defines the keyword RETURN as an exception, but when it is used with no arguments it works just like continue in C.
Note, however, that RETURN only works inside a procedure or a function procedure; use EXIT otherwise.
Module code and imports are omitted.
FOR i := 1 TO 10 DO IO.PutInt(i); IF i MOD 5 = 0 THEN IO.Put("\n"); RETURN; END; IO.Put(", "); END;
Perl
<lang perl>foreach (1..10) {
print $_; if ($_ % 5 == 0) { print "\n"; next; } print ', ';
}</lang>
PHP
<lang php>for ($i = 1; $i <= 10; $i++) {
echo $i; if ($i % 5 == 0) { echo "\n"; continue; } echo ', ';
}</lang>
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
<lang python>for i in xrange(1,11):
if i % 5 == 0: print i continue print i, ",",</lang>
Ruby
<lang ruby>for i in 1..10 do
print i if i % 5 == 0 then puts next end print ', '
end</lang>
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