Loops/Do-while: Difference between revisions

Dialects of BASIC moved to the BASIC section.
(Added EasyLang implementation)
(Dialects of BASIC moved to the BASIC section.)
Line 516:
 
=={{header|BASIC}}==
{{works with|QBasic|1.1}}
{{works with|QuickBasic|4.5}}
{{works with|Just BASIC}}
<syntaxhighlight lang="qbasic">a = 0
do
a = a + 1
print a
loop while a mod 6 <> 0</syntaxhighlight>
 
==={{header|Applesoft BASIC}}===
{{works with|Commodore BASIC}}
Line 534 ⟶ 525:
20 PRINT V4LUE" ";
30 WHILE = FN MOD6(V4LUE) < > 0:DO = NOT WHILE: NEXT</syntaxhighlight>
 
==={{header|ASIC}}===
ASIC does not have a <code>do .. while</code> construct. Equivalent using <code>WHILE</code>:
Line 602 ⟶ 594:
PRINT a
UNTIL a MOD 6 = 0</syntaxhighlight>
 
 
==={{header|Commodore BASIC}}===
Line 612 ⟶ 603:
150 b=x/6<>int(x/6)
160 next x
</syntaxhighlight>
 
==={{header|FreeBASIC}}===
<syntaxhighlight lang="freebasic">' FB 1.05. 0 Win64
 
Dim i As Integer = 0
Do
i += 1
Print i; " ";
Loop While i Mod 6 <> 0
Print
Sleep</syntaxhighlight>
{{out}}
<pre>
1 2 3 4 5 6
</pre>
 
==={{header|FutureBasic}}===
<syntaxhighlight lang="futurebasic">window 1
 
dim as long i
 
do
i++
print i
until ( i mod 6 == 0 )
 
HandleEvents</syntaxhighlight>
{{out}}
<pre>
1
2
3
4
5
6
</pre>
 
==={{header|Gambas}}===
'''[https://gambas-playground.proko.eu/?gist=57e91eab60baf7e39df9b6d16a0deddd Click this link to run this code]'''
<syntaxhighlight lang="gambas">Public Sub Main()
Dim siCount As Short
 
Repeat
Inc siCount
Print siCount;;
Until siCount Mod 6 = 0
 
End</syntaxhighlight>
{{out}}
<pre>
1 2 3 4 5 6
</pre>
 
==={{header|GW-BASIC}}===
GW-BASIC does not have a <code>do .. while</code> construct.
Equivalent using <code>WHILE</code>:
{{works with|BASICA}}
{{works with|PC-BASIC|any}}
<syntaxhighlight lang="gwbasic">
10 LET I% = 0
20 ' first iteration - before the WHILE
30 LET I% = I% + 1
40 PRINT I%
50 WHILE I% MOD 6 <> 0
60 LET I% = I% + 1
70 PRINT I%
80 WEND
</syntaxhighlight>
Equivalent using <code>GOTO</code>:
{{works with|BASICA}}
{{works with|PC-BASIC|any}}
<syntaxhighlight lang="gwbasic">
10 LET I% = 0
20 LET I% = I% + 1
30 PRINT I%
40 IF I% MOD 6 <> 0 THEN GOTO 20
</syntaxhighlight>
 
Line 620 ⟶ 688:
130 PRINT I
140 LOOP UNTIL MOD(I,6)=0</syntaxhighlight>
 
==={{header|Liberty BASIC}}===
{{works with|Just BASIC}}
<syntaxhighlight lang="lb">
a = 0
do
a = a + 1
print a
loop until (a mod 6) = 0
</syntaxhighlight>
See also [[#QBasic|QBasic]].
 
==={{header|Microsoft Small Basic}}===
Microsoft Small Basic does not have a <code>do .. while</code> construct.
Equivalent using <code>While</code>:
<syntaxhighlight lang="microsoftsmallbasic">
i = 0
' first iteration - before the While
i = i + 1
TextWindow.WriteLine(i)
While Math.Remainder(i, 6) <> 0
i = i + 1
TextWindow.WriteLine(i)
EndWhile
</syntaxhighlight>
Equivalent using <code>Goto</code>:
<syntaxhighlight lang="microsoftsmallbasic">
i = 0
loopStart:
i = i + 1
TextWindow.WriteLine(i)
If Math.Remainder(i, 6) <> 0 Then
Goto loopStart
EndIf
</syntaxhighlight>
 
==={{header|Minimal BASIC}}===
Line 630 ⟶ 733:
50 IF INT(I/6)*6 <> I THEN 30
60 END
</syntaxhighlight>
 
==={{header|NS-HUBASIC}}===
<syntaxhighlight lang="ns-hubasic">10 PRINT "NO,"A" ISN'T A MULTIPLE OF 6."
20 A=A+1
30 IF A-(A/6)*6<>0 THEN GOTO 10
40 PRINT "YES, 6 IS A MULTIPLE OF 6."</syntaxhighlight>
 
==={{header|PureBasic}}===
{{works with|PureBasic|4.41}}
<syntaxhighlight lang="purebasic">x=0
Repeat
x+1
Debug x
Until x%6=0</syntaxhighlight>
 
==={{header|QB64}}===
''CBTJD'': 2020/03/14
<syntaxhighlight lang="qbasic">DO
PRINT n
n = n + 1
LOOP WHILE n MOD 6 <> 0</syntaxhighlight>
 
<syntaxhighlight lang="qb64">
'Another demo of DO loops
Dim As Integer Counter
Print "First loop DO..LOOP UNTIL"
Counter = 0
Do
Print Counter
Counter = Counter + 1
Loop Until Counter Mod 6 = 0
Print "Counter Mod 6 = "; Counter Mod 6
Print "First loop DO WHILE..LOOP"
Counter = 1
Do While Counter Mod 6 <> 0
Print Counter
Counter = Counter + 1
Loop
Print "Counter Mod 6 = "; Counter Mod 6
End
</syntaxhighlight>
 
Line 655 ⟶ 799:
30 PRINT X
40 IF X/6<>INT (X/6) THEN GOTO 20</syntaxhighlight>
 
==={{Header|Tiny BASIC}}===
Tiny Basic does not have a <code>do .. while</code> construct. Equivalent using conditional jump:
<syntaxhighlight lang="tiny basic"> LET i = 0
10 LET i = i + 1
PRINT i
IF (i / 6) * 6 <> i THEN GOTO 10
END</syntaxhighlight>
 
==={{header|True BASIC}}===
Line 665 ⟶ 817:
PRINT
END</syntaxhighlight>
 
==={{header|VBA}}===
<syntaxhighlight lang="vb">Public Sub LoopDoWhile()
Dim value As Integer
value = 0
Do
value = value + 1
Debug.Print value;
Loop While value Mod 6 <> 0
End Sub</syntaxhighlight>{{out}}<pre> 1 2 3 4 5 6 </pre>
 
==={{header|Visual Basic .NET}}===
<syntaxhighlight lang="vbnet">Dim i = 0
Do
i += 1
Console.WriteLine(i)
Loop Until i Mod 6 = 0</syntaxhighlight>
 
==={{header|XBasic}}===
Line 682 ⟶ 851:
END PROGRAM
</syntaxhighlight>
 
==={{Header|Tiny BASIC}}===
<syntaxhighlight lang="tiny basic"> REM TinyBasic does not have a do .. while construct. Equivalent using conditional jump:
 
LET i = 0
10 LET i = i + 1
PRINT i
IF (i / 6) * 6 <> i THEN GOTO 10
END</syntaxhighlight>
 
==={{header|Yabasic}}===
Line 1,206 ⟶ 1,366:
5
6
</pre>
 
=={{header|FreeBASIC}}==
<syntaxhighlight lang="freebasic">' FB 1.05. 0 Win64
 
Dim i As Integer = 0
Do
i += 1
Print i; " ";
Loop While i Mod 6 <> 0
Print
Sleep</syntaxhighlight>
 
{{out}}
<pre>
1 2 3 4 5 6
</pre>
 
Line 1,231 ⟶ 1,375:
println[n]
} while n mod 6 != 0</syntaxhighlight>
 
=={{header|FutureBasic}}==
<syntaxhighlight lang="futurebasic">window 1
 
dim as long i
 
do
i++
print i
until ( i mod 6 == 0 )
 
HandleEvents</syntaxhighlight>
Output:
<pre>
1
2
3
4
5
6
</pre>
 
=={{header|Gambas}}==
'''[https://gambas-playground.proko.eu/?gist=57e91eab60baf7e39df9b6d16a0deddd Click this link to run this code]'''
<syntaxhighlight lang="gambas">Public Sub Main()
Dim siCount As Short
 
Repeat
Inc siCount
Print siCount;;
Until siCount Mod 6 = 0
 
End</syntaxhighlight>
Output:
<pre>
1 2 3 4 5 6
</pre>
 
=={{header|GAP}}==
Line 1,375 ⟶ 1,482:
5
6</pre>
 
=={{header|GW-BASIC}}==
GW-BASIC does not have a <code>do .. while</code> construct.
Equivalent using <code>WHILE</code>:
{{works with|PC-BASIC|any}}
<syntaxhighlight lang="gwbasic">
10 LET I% = 0
20 ' first iteration - before the WHILE
30 LET I% = I% + 1
40 PRINT I%
50 WHILE I% MOD 6 <> 0
60 LET I% = I% + 1
70 PRINT I%
80 WEND
</syntaxhighlight>
Equivalent using <code>GOTO</code>:
{{works with|PC-BASIC|any}}
<syntaxhighlight lang="gwbasic">
10 LET I% = 0
20 LET I% = I% + 1
30 PRINT I%
40 IF I% MOD 6 <> 0 THEN GOTO 20
</syntaxhighlight>
 
=={{header|Harbour}}==
Line 1,410 ⟶ 1,494:
 
=={{header|Haskell}}==
 
<syntaxhighlight lang="haskell">import Data.List
import Control.Monad
Line 1,596 ⟶ 1,679:
 
====ES6====
 
A process or value of this kind might be better expressed (in functionally composed JavaScript) with an '''unfold''' or '''until''' function, returning a list.
 
Line 1,646 ⟶ 1,728:
})();
</syntaxhighlight>
 
 
<syntaxhighlight lang="javascript">[[1, 2, 3, 4, 5], [1, 2, 3, 4, 5]]</syntaxhighlight>
Line 1,830 ⟶ 1,911:
-> 0 1 2 3 4 5 6 (end of loop)
</syntaxhighlight>
 
=={{header|Liberty BASIC}}==
<syntaxhighlight lang="lb">
a = 0
do
a =a +1
print a
loop until ( a mod 6) = 0
</syntaxhighlight>
 
See also [[#BASIC|BASIC]]
 
=={{header|Lingo}}==
Line 1,975 ⟶ 2,045:
forever: show a; a := a + 1; exitif a mod 6 = 0; endfor
end</syntaxhighlight>
 
=={{header|Microsoft Small Basic}}==
Microsoft Small Basic does not have a <code>do .. while</code> construct.
Equivalent using <code>While</code>:
<syntaxhighlight lang="microsoftsmallbasic">
i = 0
' first iteration - before the While
i = i + 1
TextWindow.WriteLine(i)
While Math.Remainder(i, 6) <> 0
i = i + 1
TextWindow.WriteLine(i)
EndWhile
</syntaxhighlight>
Equivalent using <code>Goto</code>:
<syntaxhighlight lang="microsoftsmallbasic">
i = 0
loopStart:
i = i + 1
TextWindow.WriteLine(i)
If Math.Remainder(i, 6) <> 0 Then
Goto loopStart
EndIf
</syntaxhighlight>
 
=={{header|min}}==
Line 2,005 ⟶ 2,051:
 
=={{header|MIPS Assembly}}==
 
<syntaxhighlight lang="mips">
.text
Line 2,148 ⟶ 2,193:
inc val
echo val</syntaxhighlight>
 
=={{header|NS-HUBASIC}}==
<syntaxhighlight lang="ns-hubasic">10 PRINT "NO,"A" ISN'T A MULTIPLE OF 6."
20 A=A+1
30 IF A-(A/6)*6<>0 THEN GOTO 10
40 PRINT "YES, 6 IS A MULTIPLE OF 6."</syntaxhighlight>
 
=={{header|Oberon-2}}==
Line 2,475 ⟶ 2,514:
 
</syntaxhighlight>
 
=={{header|PureBasic}}==
{{works with|PureBasic|4.41}}
<syntaxhighlight lang="purebasic">x=0
Repeat
x+1
Debug x
Until x%6=0</syntaxhighlight>
 
=={{header|Python}}==
Line 2,497 ⟶ 2,528:
val += 1
print val</syntaxhighlight>
 
=={{header|QB64}}==
''CBTJD'': 2020/03/14
<syntaxhighlight lang="qbasic">DO
PRINT n
n = n + 1
LOOP WHILE n MOD 6 <> 0</syntaxhighlight>
 
<syntaxhighlight lang="qb64">
'Another demo of DO loops
Dim As Integer Counter
Print "First loop DO..LOOP UNTIL"
Counter = 0
Do
Print Counter
Counter = Counter + 1
Loop Until Counter Mod 6 = 0
Print "Counter Mod 6 = "; Counter Mod 6
Print "First loop DO WHILE..LOOP"
Counter = 1
Do While Counter Mod 6 <> 0
Print Counter
Counter = Counter + 1
Loop
Print "Counter Mod 6 = "; Counter Mod 6
End
</syntaxhighlight>
 
=={{header|Quackery}}==
Line 2,540 ⟶ 2,544:
 
=={{header|Racket}}==
 
Idiomatic Racket code is functional:
<syntaxhighlight lang="racket">
Line 3,078 ⟶ 3,081:
while ( a % 6 != 0);
</syntaxhighlight>
 
=={{header|VBA}}==
<syntaxhighlight lang="vb">Public Sub LoopDoWhile()
Dim value As Integer
value = 0
Do
value = value + 1
Debug.Print value;
Loop While value Mod 6 <> 0
End Sub</syntaxhighlight>{{out}}<pre> 1 2 3 4 5 6 </pre>
 
=={{header|Vedit macro language}}==
Line 3,104 ⟶ 3,097:
@SAY n;
};</syntaxhighlight>
 
 
=={{header|Verilog}}==
Line 3,123 ⟶ 3,115:
endmodule
</syntaxhighlight>
 
 
=={{header|Visual Basic .NET}}==
<syntaxhighlight lang="vbnet">Dim i = 0
Do
i += 1
Console.WriteLine(i)
Loop Until i Mod 6 = 0</syntaxhighlight>
 
=={{header|Wren}}==
Line 3,140 ⟶ 3,124:
if (v%6 == 0) break
}</syntaxhighlight>
 
{{out}}
<pre>
Line 3,298 ⟶ 3,281:
 
{{omit from|GUISS}}
{{omit from|Commodore BASIC}}
512

edits