QB64 Phoenix Edition
Question on ln in a for/next loop - Printable Version

+- QB64 Phoenix Edition (https://qb64phoenix.com/forum)
+-- Forum: QB64 Rising (https://qb64phoenix.com/forum/forumdisplay.php?fid=1)
+--- Forum: Code and Stuff (https://qb64phoenix.com/forum/forumdisplay.php?fid=3)
+---- Forum: Help Me! (https://qb64phoenix.com/forum/forumdisplay.php?fid=10)
+---- Thread: Question on ln in a for/next loop (/showthread.php?tid=3026)

Pages: 1 2


RE: Question on ln in a for/next loop - Pete - 09-13-2024

Quote:name that tune: Tie A Yellow Ribbon Around The Old Oak Tree

Can you name the singer who made it famous?

Tony Orlando and Dawn. I knew them personally. They used to frequent my father's store.

Now a math question:

Q: What does Fake News + Phony Politicians =

A: Real Problems

Pete


RE: Question on ln in a for/next loop - Kernelpanic - 09-13-2024

The global "ln" was probably passed to a Procedure(Sub). - A local "ln" is only known in this subprogram and has no effect on the program outside.

[Image: Variable-Lokal-Global-2024.jpg]

Why it is -2

Does the local variable also come before a "shared variable" in the main program? Test it!  Tongue

Code: (Select All)

'Beispiel lokale Variablen - 13. Sept. 2024

$Console:Only
Option _Explicit

Declare Sub Beispiel()
Declare Sub Beispiel2(ln As Integer)

Dim As Integer ln, speed(10)

For ln = 1 To 10
  speed(ln) = ln
  Print speed(ln)

  'Sonst ist ln = 11
  If ln = 10 Then
    Exit For
  End If
Next
Print: Print ln

Locate CsrLin + 1, 2
Call Beispiel

Locate CsrLin + 1, 2
Call Beispiel2(ln)
End

Sub Beispiel
  Dim As Integer i
  Dim As Single ln

  For i = 1 To 10
    ln = i * 1.36
    Print Using "##.##"; ln
    Locate CsrLin, 2
  Next
End Sub

Sub Beispiel2 (ln)

  Dim As Integer ln

  'Das lokale "ln" geht vor dem globalen
  ln = ln - 2
  Print ln
End Sub



RE: Question on ln in a for/next loop - bplus - 09-13-2024

Why -2? because when you Dim ln as Integer inside the subroutine you set it to zero.

Comment that line out and all is as expected.


RE: Question on ln in a for/next loop - Kernelpanic - 09-13-2024

@bplus - correct in principle. It is -2 because every new uninitialized variable in Basic is automatically initialized with zero. Zero minus 2 is . . . -2.