mirror of
https://github.com/QB64Official/qb64.git
synced 2024-09-16 03:54:01 +00:00
b586eafd3b
LINE INPUT will now use the faster method if passed a file handle that has been opened FOR BINARY. As such, the _BLINEINPUT command has been removed. qb64.bas now takes advantage of this for reading from '$include files, at least in Include Manager 1. Some tweaking of internal/source/main.txt was required to get things into a sane state, so I'm holing off changing the compiler any further so the auto-builder can make sure everything's smoothed over. Note: Everything should still compile as normal; I'm just being overcautious.
65 lines
No EOL
2.4 KiB
Text
65 lines
No EOL
2.4 KiB
Text
'''SELECT CASE''' is used to determine the program flow by comparing the value of a variable to specific values.
|
|
|
|
|
|
{{PageSyntax}}
|
|
:::::SELECT CASE variable
|
|
::::::' [[CASE]]
|
|
::::::' [[CASE IS]]
|
|
::::::' [[CASE ELSE]]
|
|
:::::[[END SELECT]]
|
|
|
|
|
|
* Variable can be any literal string or numerical type. Can only evaluate ONE value or calculation.
|
|
* Use SELECT CASE when IF statements get too long or complicated.
|
|
* The CASE comparisons should cover the normal ranges of the variable values(use CASE ELSE if necessary).
|
|
* CASEs should be listed in an ascending or descending values for best and fastest results.
|
|
* The routine will execute code in the FIRST True [[CASE]] statement and exit the procedure.
|
|
* Supports individual CASE values and ranges or lists of values as below:
|
|
:* CASE value
|
|
:* CASE value1 [[TO]] value2
|
|
:* CASE value1, value2, value3
|
|
:* [[CASE IS]] value1 > value2
|
|
:* [[CASE ELSE]]
|
|
|
|
* SELECT CASE statements must '''always''' be ended with [[END SELECT]]!
|
|
* Use '''[[colon]]s''' to execute multiple statements in a one line statement. You cannot use AND for multiple statements!
|
|
* An '''[[underscore]]''' can be used anywhere after the code on one line to continue it to the next line in '''QB64 ONLY'''.
|
|
|
|
|
|
''Example:''
|
|
{{CodeStart}}
|
|
a = 100
|
|
{{Cl|SELECT CASE}} a 'designate the value to compare
|
|
{{Cl|CASE}} 1, 3, 5, 7, 9
|
|
{{Cl|PRINT}} "This will not be shown."
|
|
{{Cl|CASE}} 10
|
|
{{Cl|PRINT}} "This will not be shown."
|
|
{{Cl|CASE}} 50
|
|
{{Cl|PRINT}} "This will not be shown."
|
|
{{Cl|CASE}} 100
|
|
{{Cl|PRINT}} "This will be displayed when a equals 100)"
|
|
{{Cl|PRINT}} "(and no other case will be checked)"
|
|
{{Cl|CASE}} 150
|
|
{{Cl|PRINT}} "This will not be shown."
|
|
{{Cl|CASE IS}} < 150
|
|
{{Cl|PRINT}} "This will not be shown as a previous case was true"
|
|
{{Cl|CASE}} 50 {{Cl|TO}} 150
|
|
{{Cl|PRINT}} "This will not be shown as a previous case was true"
|
|
{{Cl|CASE ELSE}}
|
|
{{Cl|PRINT}} "This will only print if it gets this far!"
|
|
{{Cl|END SELECT}} '' ''
|
|
{{CodeEnd}}
|
|
{{OutputStart}}
|
|
This will be displayed when a equals 100)
|
|
(and no other case will be checked)
|
|
{{OutputEnd}}
|
|
:''Explanation:'' The first case where a value is true is shown, the remainder are skipped. Try changing the value of 'a' to different numbers!
|
|
|
|
|
|
|
|
''See also:''
|
|
* [[CASE]], [[CASE IS]]
|
|
* [[IF...THEN]], [[Boolean]]
|
|
|
|
|
|
{{PageNavigation}} |