FreeBasic Select Case Keyword
last modified June 16, 2025
The FreeBasic Select Case
statement provides a clean way to
handle multiple conditional branches. It's often more readable than a
series of If-ElseIf
statements when testing a single variable.
Basic Definition
Select Case
evaluates an expression once and compares it
against multiple possible values. Each value is specified in a Case
block. The Case Else
block handles any unmatched values.
The structure begins with Select Case expression
and ends with
End Select
. Between them are Case
statements
that define the conditions to match against the expression.
Basic Select Case Example
This example demonstrates the simplest form of Select Case statement.
Dim grade As String = "B" Select Case grade Case "A" Print "Excellent!" Case "B" Print "Good job!" Case "C" Print "You passed" Case Else Print "Needs improvement" End Select
Here we evaluate a letter grade and print a corresponding message. The code matches the "B" case and executes its block. Case Else would catch any grades not explicitly listed (D, F, etc.).
Numeric Range Matching
Select Case can match against numeric ranges using the To
keyword.
Dim temperature As Integer = 22 Select Case temperature Case Is < 0 Print "Freezing" Case 0 To 10 Print "Very cold" Case 11 To 20 Print "Cool" Case 21 To 30 Print "Comfortable" Case Else Print "Too hot" End Select
This example checks temperature ranges. The Is
keyword allows
comparison operators. Ranges are specified with To
. The 22°
temperature falls in the "Comfortable" range.
Multiple Values in a Case
A single Case statement can match against multiple values separated by commas.
Dim day As String = "Mon" Select Case day Case "Mon", "Tue", "Wed", "Thu", "Fri" Print "Weekday" Case "Sat", "Sun" Print "Weekend" Case Else Print "Invalid day" End Select
This code checks if a day is a weekday or weekend day. The first Case matches any weekday abbreviation. Multiple values make the code concise without needing separate Case statements for each value.
Type Matching with Select Case
Select Case can work with different data types, including strings and numbers.
Dim value As Variant = 3.14 Select Case VarType(value) Case VT_INTEGER, VT_LONG Print "Integer number" Case VT_SINGLE, VT_DOUBLE Print "Floating-point number" Case VT_STRING Print "String" Case Else Print "Unknown type" End Select
This example uses VarType
to check a variable's type. The
Case statements match against FreeBasic's type constants. The code prints
"Floating-point number" for the 3.14 value.
Select Case with Enumerations
Enumerations work well with Select Case for readable code.
Enum Colors RED GREEN BLUE End Enum Dim favorite As Colors = GREEN Select Case favorite Case RED Print "You chose red" Case GREEN Print "You chose green" Case BLUE Print "You chose blue" End Select
Here we define an enumeration of colors and use it in a Select Case. The code matches the GREEN case. Enums make the code more maintainable than using magic numbers directly in Case statements.
Nested Select Case
Select Case statements can be nested inside each other for complex logic.
Dim category As String = "fruit" Dim item As String = "apple" Select Case category Case "fruit" Select Case item Case "apple" Print "Apple selected" Case "banana" Print "Banana selected" Case Else Print "Unknown fruit" End Select Case "vegetable" Print "Vegetable selected" Case Else Print "Unknown category" End Select
This example shows nested Select Case statements. The outer case matches "fruit", then the inner case checks specific fruits. Nested cases help organize complex decision trees while keeping code readable.
Select Case with Expressions
The expression in Select Case can be more complex than just a variable.
Dim x As Integer = 5 Dim y As Integer = 10 Select Case (x + y) Case 1 To 5 Print "Sum is small" Case 6 To 15 Print "Sum is medium" Case Is > 15 Print "Sum is large" End Select
Here we evaluate the sum of two variables in the Select Case expression. The sum 15 falls in the "medium" range. This demonstrates that any valid expression can be used, not just simple variables.
Best Practices
- Order matters: Place specific cases before general ones.
- Use Case Else: Always include a default case for unexpected values.
- Keep it simple: Avoid overly complex expressions in Case statements.
- Group related cases: Use comma-separated values when appropriate.
- Consider readability: Use Select Case instead of nested Ifs when testing one variable.
This tutorial covered the FreeBasic Select Case
statement with
practical examples showing its usage in different scenarios.
Author
List all FreeBasic Tutorials.