CONST: Difference between revisions
Jump to navigation
Jump to search
Created page with "The CONST statement globally defines one or more named numeric or string values which will not change while the program is running. {{PageSyntax}} : CONST {{Parameter|constantName}} = {{Parameter|value}}[, ...] {{Parameters}} * {{Parameter|constantName}} is the constant name or list of names assigned by the programmer. * {{Parameter|value}} is the value to initialize the global constant which cannot change once defined. ** If {{Parameter|constantName}} specif..." |
No edit summary |
||
(6 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
The | The '''CONST''' statement globally defines one or more named numeric or string values which will not change while the program is running. | ||
Line 6: | Line 6: | ||
{{ | {{PageParameters}} | ||
* {{Parameter|constantName}} is the constant name or list of names assigned by the programmer. | * {{Parameter|constantName}} is the constant name or list of names assigned by the programmer. | ||
* {{Parameter|value}} is the value to initialize the global constant which cannot change once defined. | * {{Parameter|value}} is the value to initialize the global constant which cannot change once defined. | ||
Line 15: | Line 15: | ||
{{PageDescription}} | {{PageDescription}} | ||
* The {{Parameter|constantName}} does not have to include a type suffix. The datatype is automatically infered by the compiler using the {{Parameter|value}}. | * The {{Parameter|constantName}} does not have to include a type suffix. The datatype is automatically infered by the compiler using the {{Parameter|value}}. | ||
* Constant values cannot reference a variable | * Constant values cannot reference a variable or user [[FUNCTION]] return value when defined. However, other (already known) constants and most of the internal char, math or color functions can be used, such as [[CHR$]], [[EXP]] or [[_RGBA32]]. | ||
* Constants cannot be reassigned values. They retain the same value throughout all of the program procedures. | * Constants cannot be reassigned values. They retain the same value throughout all of the program procedures. | ||
* Constants defined in module-level code have [[SHARED|shared]] scope, so they can also be used in [[SUB]] or [[FUNCTION]] procedures. | * Constants defined in module-level code have [[SHARED|shared]] scope, so they can also be used in [[SUB]] or [[FUNCTION]] procedures. | ||
* Constants defined in [[SUB]] or [[FUNCTION]] procedures are local to those procedures. | * Constants defined in [[SUB]] or [[FUNCTION]] procedures are local to those procedures. | ||
* [[CLEAR]] will not affect or change constant values. | * [[CLEAR]] will not affect or change constant values. | ||
* Since '''QB64-PE v4.0.0''' a huge list of preset [[Constants]] is available in every program. | |||
{{PageExamples}} | {{PageExamples}} | ||
;Example 1: Display the circumference and the area of circles: | |||
{{CodeStart}}' Declare a numeric constant approximately equal to the ratio of a circle's | {{CodeStart}} | ||
' circumference to its diameter: | {{Text|<nowiki>' Declare a numeric constant approximately equal to the ratio of a circle's</nowiki>|#919191}} | ||
{{Cl|CONST}} PI = 3.141593 | {{Text|<nowiki>' circumference to its diameter:</nowiki>|#919191}} | ||
{{Cl|CONST}} PI = {{Text|3.141593|#F580B1}} | |||
' Declare some string constants: | {{Text|<nowiki>' Declare some string constants:</nowiki>|#919191}} | ||
{{Cl|CONST}} circumferenceText = "The circumference of the circle is" | {{Cl|CONST}} circumferenceText = {{Text|<nowiki>"The circumference of the circle is"</nowiki>|#FFB100}} | ||
{{Cl|CONST}} areaText = "The area of the circle is" | {{Cl|CONST}} areaText = {{Text|<nowiki>"The area of the circle is"</nowiki>|#FFB100}} | ||
{{Cl | {{Cl|DO}} | ||
{{Cl|INPUT}} "Enter the radius of a circle or zero to quit"; radius | {{Cl|INPUT}} {{Text|<nowiki>"Enter the radius of a circle or zero to quit"</nowiki>|#FFB100}}; radius | ||
{{Cl | {{Cl|IF}} radius = {{Text|0|#F580B1}} {{Cl|THEN}} {{Cl|END}} | ||
{{Cl|PRINT}} circumferenceText; 2 * PI * radius | {{Cl|PRINT}} circumferenceText; {{Text|2|#F580B1}} * PI * radius | ||
{{Cl|PRINT}} areaText; PI * radius * radius ' radius squared | {{Cl|PRINT}} areaText; PI * radius * radius {{Text|<nowiki>' radius squared</nowiki>|#919191}} | ||
{{Cl|PRINT}} | {{Cl|PRINT}} | ||
{{Cl| | {{Cl|LOOP}} | ||
{{Cl|END}} | |||
{{CodeEnd}} | {{CodeEnd}} | ||
{{OutputStart}}Enter the radius of a circle or zero to quit? ''10'' | {{OutputStart}} | ||
Enter the radius of a circle or zero to quit? ''10'' | |||
The circumference of the circle is 62.83186 | The circumference of the circle is 62.83186 | ||
The area of the circle is 314.1593 | The area of the circle is 314.1593 | ||
Line 47: | Line 50: | ||
Enter the radius of a circle or zero to quit? ''123.456'' | Enter the radius of a circle or zero to quit? ''123.456'' | ||
The circumference of the circle is 775.697 | The circumference of the circle is 775.697 | ||
The area of the circle is 47882. | The area of the circle is 47882.226 | ||
Enter the radius of a circle or zero to quit? ''0'' | Enter the radius of a circle or zero to quit? ''0'' | ||
{{OutputEnd}} | {{OutputEnd}} | ||
{{PreStart}} | |||
'''Explanation''' | |||
PI cannot change as it is a mathematical constant so it is fitting | |||
to define it as a constant. Trying to change PI will result in a | |||
calculation error. | |||
{{PreEnd}} | |||
---- | |||
;Example 2: Using _RGB32 to set a constant's value. | |||
{{CodeStart}} | {{CodeStart}} | ||
{{Cl|CONST}} Red = _RGB32(255,0,0) | {{Cl|SCREEN}} {{Cl|_NEWIMAGE}}({{Text|640|#F580B1}}, {{Text|400|#F580B1}}, {{Text|32|#F580B1}}) | ||
{{Cl|CONST}} Red = {{Cl|_RGB32}}({{Text|255|#F580B1}}, {{Text|0|#F580B1}}, {{Text|0|#F580B1}}) | |||
{{Cl|COLOR}} Red | {{Cl|COLOR}} Red | ||
{{Cl|PRINT}} "Hello World" | {{Cl|PRINT}} {{Text|<nowiki>"Hello World"</nowiki>|#FFB100}} | ||
{{Cl|END}} | |||
{{CodeEnd}} | {{CodeEnd}} | ||
{{OutputStart}} | |||
{{Ot|Hello World|red}} | |||
{{OutputEnd}} | |||
{{PageSeeAlso}} | {{PageSeeAlso}} | ||
* [[DIM]], [[SHARED]] | * [[DIM]], [[SHARED]] | ||
* [[STATIC]], [[COMMON]] | * [[STATIC]], [[COMMON]] | ||
* [[ | * [[Constants]] (Defined by the Compiler) | ||
* [http://doc.pcsoft.fr/en-US/?6510001 Windows 32 API constant values] | * [http://doc.pcsoft.fr/en-US/?6510001 Windows 32 API constant values] | ||
{{PageNavigation}} | {{PageNavigation}} |
Latest revision as of 14:49, 8 December 2024
The CONST statement globally defines one or more named numeric or string values which will not change while the program is running.
Syntax
- CONST constantName = value[, ...]
Parameters
- constantName is the constant name or list of names assigned by the programmer.
- value is the value to initialize the global constant which cannot change once defined.
- If constantName specifies a numeric type, value must be a numeric expression containing literals and other constants.
- If constantName specifies a string type, the value must be a literal value.
Description
- The constantName does not have to include a type suffix. The datatype is automatically infered by the compiler using the value.
- Constant values cannot reference a variable or user FUNCTION return value when defined. However, other (already known) constants and most of the internal char, math or color functions can be used, such as CHR$, EXP or _RGBA32.
- Constants cannot be reassigned values. They retain the same value throughout all of the program procedures.
- Constants defined in module-level code have shared scope, so they can also be used in SUB or FUNCTION procedures.
- Constants defined in SUB or FUNCTION procedures are local to those procedures.
- CLEAR will not affect or change constant values.
- Since QB64-PE v4.0.0 a huge list of preset Constants is available in every program.
Examples
- Example 1
- Display the circumference and the area of circles:
' Declare a numeric constant approximately equal to the ratio of a circle's ' circumference to its diameter: CONST PI = 3.141593 ' Declare some string constants: CONST circumferenceText = "The circumference of the circle is" CONST areaText = "The area of the circle is" DO INPUT "Enter the radius of a circle or zero to quit"; radius IF radius = 0 THEN END PRINT circumferenceText; 2 * PI * radius PRINT areaText; PI * radius * radius ' radius squared PRINT LOOP END |
Enter the radius of a circle or zero to quit? 10 The circumference of the circle is 62.83186 The area of the circle is 314.1593 Enter the radius of a circle or zero to quit? 123.456 The circumference of the circle is 775.697 The area of the circle is 47882.226 Enter the radius of a circle or zero to quit? 0 |
Explanation PI cannot change as it is a mathematical constant so it is fitting to define it as a constant. Trying to change PI will result in a calculation error. |
- Example 2
- Using _RGB32 to set a constant's value.
SCREEN _NEWIMAGE(640, 400, 32) CONST Red = _RGB32(255, 0, 0) COLOR Red PRINT "Hello World" END |
Hello World
|
See also