Loops/Infinite: Difference between revisions

no edit summary
(Loops/Infinite in Tiny BASIC)
No edit summary
 
(21 intermediate revisions by 18 users not shown)
Line 414:
end while</syntaxhighlight>
 
==={{header|CommodoreChipmunk BASICBasic}}===
{{works with|Chipmunk Basic|3.6.4}}
<syntaxhighlight lang="qbasic">10 while 1
20 print "SPAM"
30 wend</syntaxhighlight>
 
==={{header|Commodore BASIC}}===
In addition to the general examples listed above for [[#BASIC|BASIC]], there is a trick to get a Commodore BASIC program to endlessly loop its listing. All of the lines of code are a linked list in RAM. The trick is accomplished by modifying the pointer to the next line, which is recorded at the very start of each tokenized BASIC line. Instead of it pointing to the next line, you can make it point to a previous line, or itself. This will affect execution when any <code>GOTO</code> or <code>GOSUB</code> needs to reference any line number '''after''' the affected line, since the line search will be corrupted (and endless...)
 
Line 447 ⟶ 452:
ready.
&#9608;</pre>
 
==={{header|Craft Basic}}===
<syntaxhighlight lang="text">
do
print "SPAM"
loop
</syntaxhighlight>
 
==={{header|GW-BASIC}}===
{{works with|PC-BASIC}}
<syntaxhighlight lang="qbasic">10 WHILE 1
20 PRINT "SPAM"
30 WEND</syntaxhighlight>
Also
<syntaxhighlight lang="qbasic">10 PRINT "SPAM"
20 GOTO 10</syntaxhighlight>
 
==={{header|IS-BASIC}}===
Line 452 ⟶ 473:
110 PRINT "SPAM"
120 LOOP</syntaxhighlight>
 
==={{header|MSX Basic}}===
<syntaxhighlight lang="qbasic">10 FOR I = 1 TO 10 STEP 0
20 PRINT "SPAM"
30 NEXT I</syntaxhighlight>
Also
<syntaxhighlight lang="qbasic">10 PRINT "SPAM"
20 GOTO 10</syntaxhighlight>
 
==={{header|QB64}}===
Line 464 ⟶ 493:
Wend</syntaxhighlight>
 
==={{header|Quite BASIC}}===
<syntaxhighlight lang="qbasic">10 print "SPAM"
20 goto 10</syntaxhighlight>
 
==={{Header|Tiny BASIC}}===
Line 519 ⟶ 551:
unless explicitly stopped with '''@'''.
<syntaxhighlight lang="befunge">55+"MAPS",,,,,</syntaxhighlight>
 
=={{header|Binary Lambda Calculus}}==
Adding "SPAM\n" to the BLC8 cycle program generated from https://github.com/tromp/AIT/blob/master/lists/cycle.lam
gives the 16 byte program
<pre>11 a1 72 34 00 2d e5 e7 ef b3 40 53 50 41 4d 0a</pre>
 
=={{header|blz}}==
Line 558 ⟶ 595:
=={{header|Brat}}==
<syntaxhighlight lang="brat">loop { p "SPAM" }</syntaxhighlight>
 
=={{header|Bruijn}}==
<syntaxhighlight lang="bruijn">
:import std/String .
 
main [spam spam]
spam ["SPAM\n" ++ (0 0)]
</syntaxhighlight>
 
=={{header|C}}==
Line 591 ⟶ 636:
std::cout << "SPAM\n";
while (true);</syntaxhighlight>
 
=={{header|C3}}==
<syntaxhighlight lang="c3">while(1) io::printn("SPAM");</syntaxhighlight>
or
<syntaxhighlight lang="c3">for(;;) io::printn("SPAM");</syntaxhighlight>
or
<syntaxhighlight lang="c3">do { io::printn("SPAM"); } while(1);</syntaxhighlight>
or
<syntaxhighlight lang="c3">switch (1)
{
case 1:
io::printn("SPAM");
nextcase 1;
}
</syntaxhighlight>
 
=={{header|Chapel}}==
Line 746 ⟶ 806:
=={{header|Delphi}}==
''See [[#Pascal|Pascal]]''
 
=={{header|DIBOL-11}}==
<syntaxhighlight lang="DIBOL-11">
START ;Infinite Loop
 
RECORD SPAM
, A4, 'SPAM'
 
PROC
XCALL FLAGS (0007000000,1) ;Suppress STOP message
 
OPEN(8,O,'TT:')
LOOP,
WRITES(8,SPAM)
GOTO LOOP
END
</syntaxhighlight>
 
=={{header|Draco}}==
Line 792 ⟶ 869:
=={{header|EasyLang}}==
<syntaxhighlight lang="easylang">
while 01 = 01
print "SPAM"
.
Line 859 ⟶ 936:
 
=={{header|Elena}}==
ELENA 46.x:
<syntaxhighlight lang="elena">public program()
{
while (true)
{
console.writeLine:("spam")
}
}</syntaxhighlight>
Line 1,036 ⟶ 1,113:
<syntaxhighlight lang="gb basic">10 print "SPAM"
20 goto10</syntaxhighlight>
 
=={{header|GDScript}}==
{{works with|Godot|4.0.1}}
 
<syntaxhighlight lang="gdscript">
extends MainLoop
 
 
func _process(_delta: float) -> bool:
print("SPAM")
return false # _process loops until true is returned
 
</syntaxhighlight>
 
=={{header|GlovePIE}}==
Line 1,151 ⟶ 1,241:
 
=={{header|Java}}==
<syntaxhighlight lang="java">while (true) {
while (true) System.out.printlnprint("SPAM\n");
}</syntaxhighlight>
 
<syntaxhighlight lang="java">for (;;) {
for (;;) System.out.printlnprint("SPAM\n");
}</syntaxhighlight>
 
=={{header|JavaScript}}==
Line 1,236 ⟶ 1,326:
'SPAM\r'
^}</syntaxhighlight>
 
=={{header|LDPL}}==
<syntaxhighlight lang="ldpl">procedure:
label spam
display "SPAM" lf
goto spam
</syntaxhighlight>
 
=={{header|Liberty BASIC}}==
Line 1,328 ⟶ 1,425:
spam')
spam</syntaxhighlight>
 
=={{header|MACRO11}}==
<syntaxhighlight lang="MACRO11">
; Infinte Loop under RT11
.MCALL .PRINT
.EVEN
BEGIN:
LOOP:
.PRINT #SPAM
BR LOOP
SPAM: .ASCIZ /SPAM/
.END BEGIN
</syntaxhighlight>
 
 
=={{header|MAD}}==
Line 1,520 ⟶ 1,631:
<syntaxhighlight lang="ns-hubasic">10 PRINT "SPAM"
20 RUN</syntaxhighlight>
 
=={{header|Nu}}==
<syntaxhighlight lang="nu">
while true {print SPAM}
</syntaxhighlight>
 
=={{header|Oberon-2}}==
Line 1,660 ⟶ 1,776:
put list ('SPAM'); put skip;
end;</syntaxhighlight>
 
=={{header|PL/M}}==
<syntaxhighlight lang="PL/M">
100H:
BDOS: PROCEDURE (FN, ARG); DECLARE FN BYTE, ARG ADDRESS; GO TO 5; END BDOS;
EXIT: PROCEDURE; CALL BDOS(0,0); END EXIT;
PRINT: PROCEDURE (S); DECLARE S ADDRESS; CALL BDOS(9,S); END PRINT;
 
DECLARE SPAM DATA ('SPAM',0DH,0AH,'$');
 
LOOP: DO;
 
CALL PRINT( .SPAM );
GO TO LOOP;
 
END;
EOF
</syntaxhighlight>
 
=={{header|Plain English}}==
Line 1,791 ⟶ 1,925:
output: "SPAM"
od</syntaxhighlight>
 
=={{header|RATFOR}}==
<syntaxhighlight lang="RATFOR">
program loop
 
while (1==1)
write(*,101)"SPAM"
101 format(A)
 
end
</syntaxhighlight>
 
=={{header|REBOL}}==
Line 1,865 ⟶ 2,010:
goto "infinite_loop"
</syntaxhighlight>
 
=={{header|RPL}}==
Usually in RPL, "printing" an object in RPL means putting it on top of the stack.
In the present case, the loop would not be infinite since sooner or later the stack will overflow.
But if the printer has an infinite paper roll, this will never stop:
≪ "SPAM" '''WHILE''' 1 '''REPEAT''' PR1 '''END''' ≫ EVAL
 
=={{header|Ruby}}==
Line 2,102 ⟶ 2,253:
endprogram
</syntaxhighlight>
=={{header|TailDot}}==
 
<syntaxhighlight lang="taildot">c,x,SPAM,v,x,j,3</syntaxhighlight>
=={{header|Tailspin}}==
<syntaxhighlight lang="tailspin">
1'SPAM$#10;' -> \(
<> 'SPAM$#10;' -> !OUT::write
1$ -> #
\) -> !VOID
</syntaxhighlight>
Line 2,201 ⟶ 2,353:
out "SPAM" endl console
end while</syntaxhighlight>
=={{header|Uxntal}}==
<syntaxhighlight lang="Uxntal">
|0100
&l ;SPAM <print-str> !&l
 
@<print-str> ( str* -- )
&while ( -- )
LDAk #18 DEO
INC2 LDAk ?&while
POP2 JMP2r
 
@SPAM
"SPAM 0a $1</syntaxhighlight>
 
=={{header|V}}==
Line 2,211 ⟶ 2,376:
<syntaxhighlight lang="vala">while(true) stdout.printf("SPAM\n");</syntaxhighlight>
<syntaxhighlight lang="vala">do stdout.printf("SPAM\n"); while(true);</syntaxhighlight>
 
=={{header|Vale}}==
{{works with|Vale|0.2.0}}
<syntaxhighlight lang="vale">
import stdlib.*;
 
exported func main() {
while true {
println("SPAM");
}
}
</syntaxhighlight>
 
=={{header|VAX Assembly}}==
Line 2,290 ⟶ 2,467:
 
=={{header|Wren}}==
<syntaxhighlight lang="ecmascriptwren">while (true) System.print("SPAM")</syntaxhighlight>
 
=={{header|X86 Assembly}}==