1
1
Fork 0
mirror of https://github.com/QB64-Phoenix-Edition/QB64pe.git synced 2024-07-06 04:40:23 +00:00
QB64-PE/internal/help/Variable.txt

78 lines
3.9 KiB
Plaintext
Raw Normal View History

2021-04-25 22:40:25 +00:00
A '''variable''' is a named "container" that can hold a numerical or string value and which can be referenced or changed by the program (as opposed to [[CONST]]ant values which never change).
2021-01-24 03:36:34 +00:00
<center>'''Variable names'''</center>
2021-04-25 22:40:25 +00:00
Variables in QB64 can be any name except the names of QB64 or QBasic keywords and may not contain spaces or non-alphabetical/non-numerical characters (except "." and "_"). Numerical characters cannot be used as the first character of a variable or array name. QB64 reserves the use of a single leading underscore for QB64 procedural or variable type names.
2021-01-24 03:36:34 +00:00
Variable values can be passed to sub-procedures by using the name as a [[SUB]] or [[FUNCTION]] parameter in a [[CALL]]. Variable names in the main program module can be passed to sub-procedures by using [[DIM]] [[SHARED]] without using them as [[CALL]] parameters.
Variable names dimensioned in [[SUB]] or [[FUNCTION]] procedures can be the same as names used in the main procedure and can hold different values. [[SHARED]] sub-procedure variables can only be shared with the main program module!
Dot variable names are normally used with [[TYPE]] variable definitions. The first name before the dot is the name of the variable [[DIM|dimensioned]] [[AS]] the type. The name after the dot is the name of the variable assigned inside of the [[TYPE]].
<center>'''Variable types'''</center>
Variables can be defined as a specific type using a variable type suffix or by using a [[DIM]] or [[REDIM]](for dynamic arrays only) statement [[AS]] a variable type of [[_BIT]], [[_BYTE]], [[INTEGER]], [[LONG]], [[SINGLE]], [[DOUBLE]], [[_INTEGER64]], [[_FLOAT]] or [[STRING]] in QB64.
Groups of variable names can be type defined by the first letter or list of letters of the names using [[DEFINT]], [[DEFLNG]], [[DEFSNG]], [[DEFDBL]], [[DEFSTR]] or [[_DEFINE]] [[AS]] in QB64.
[[$DYNAMIC]] arrays can be resized and can retain their remaining element values when used with [[REDIM]] [[_PRESERVE]] in QB64. [[ERASE]] or [[CLEAR]] removes the array entirely from memory!
[[$STATIC]] arrays cannot be resized, but cannot be removed either. [[ERASE]] or [[CLEAR]] will clear the array element values only!
<center>'''Variable values'''</center>
2021-04-25 22:40:25 +00:00
Variables are initialized to empty values (0 for numerical values, and "" for strings) at the start of a program, or when first referenced inside of a [[SUB]] or [[FUNCTION]] call.
2021-01-24 03:36:34 +00:00
2021-04-25 22:40:25 +00:00
[[STATIC]] variables are also initialized to empty values, however, STATIC variables will retain their values in between SUB or FUNCTION calls, and exist for the life of the program.
2021-01-24 03:36:34 +00:00
2021-04-25 22:40:25 +00:00
[[Arrays]] variable names can hold many values in one variable name by specifying a reference index enclosed in parentheses.
2021-01-24 03:36:34 +00:00
Variables are used to hold program data information that is attained through the program flow, either by user input, calculations or by other ways of communicaton (as with I/O, memory, TCP/IP or files).
Assignment of variable values can be done using the = assignment symbol (variable1.number = 500, for example).
To pass variable values to a sub-procedure without altering or affecting the variable name's value, parenthesis can be used around the variable name in the [[CALL]].
{{PageExamples}}
''Example of different usages of variables:''
{{CodeStart}}
max = 1000
{{Cl|DIM}} d(max)
{{Cl|FOR...NEXT|FOR}} c = 1 {{Cl|TO}} max
d(c) = c + d(c - 1)
{{Cl|NEXT}}
{{Cl|PRINT}} "Show the result of the addition from 1 to n (1+2+3...+n)"
{{Cl|PRINT}} "n = (0-" + {{Cl|LTRIM$}}({{Cl|STR$}}(max)) + "): ";
{{Cl|INPUT}} "", n
{{Cl|IF...THEN|IF}} n <= max {{Cl|AND (boolean)|AND}} n >= 0 {{Cl|THEN}} {{Cl|PRINT}} d(n) {{Cl|ELSE}} {{Cl|PRINT}} "Invalid value (only 0 to" + {{Cl|STR$}}(max) + " is permitted)."
{{CodeEnd}}
{{OutputStart}}
Show the result of the addition from 1 to n (1+2+3...+n)
n = (1-1000): 10
55
{{OutputEnd}}
{{PageSeeAlso}}
* [[Argument]], [[Expression]], [[Arrays]]
{{PageNavigation}}