Table Of Contents

Case Structure (G Dataflow)

Last Modified: January 9, 2017

Contains one or more subdiagrams, or cases, exactly one of which executes when the structure executes.

The value wired to the selector terminal determines which case to execute.

Case Structures behave similarly to switch statements or if-then-else statements in other programming languages.

Programming Patterns


Value that determines which case to execute based on the input data. The input data can be a Boolean, string, integer, enumerated type or error cluster. The data type you wire to the selector terminal determines the allowed cases you can enter in the case selector label.


Case Selector Label

Part of the structure that displays the value(s) for which the associated case executes. You can specify a single value or a range of values. You also can use the case selector label to specify a default case.



Point through which data enters or exits a structure.

How Does LabVIEW Create Cases from the Items in a Selector Control?

LabVIEW creates cases using different values depending on the type of selector control you wire to the selector terminal.
Selector Control How LabVIEW Creates Cases
Ring Cases match the numeric values of items in the control.
Enum Cases match the string values of items in the control rather than the numeric values.
Combo Box Cases match the string values of items in the control.

Troubleshooting an Unexpected Execution of the Default Case

If the default case executes unexpectedly, verify that the input values wired to the selector terminal match the values in the case selector label exactly.

Resolving Errors Caused by Undefined Cases

An edit-time error occurs when there are values of the selector data type that do not correspond to any subdiagram in the Case Structure. You must either define a default case to handle out-of-range values or create a case for every possible input value. For example, if the selector is an integer data type and you specify cases for 1, 2, and 3, you must specify a default case to execute if the input value is 4 or any other unspecified integer value.

Entering Values in the Case Selector Label

You can enter a single value or lists and ranges of values in the case selector label of a Case Structure, as shown in the following table.

Type of Values Description
Numeric ranges Specify a range as 10..20, meaning all numbers from 10 to 20 inclusively.
Open-ended numeric ranges Specify a range as ..100, meaning all numbers less than or equal to 100, or 100.., meaning all numbers greater than or equal to 100.
Lists and ranges Use commas to separate values, for example ..5, 6, 7..10, 12, 13, 14.
String ranges A range of a..c includes all strings beginning with a or b, but not c. String ranges are case sensitive. For example, a range of A..c behaves differently than a..c because LabVIEW uses ASCII values to determine a string range.
Enumerated values The values display in quotation marks, for example "red", "green", and "blue". However, you do not need to type the quotation marks when you enter the values unless the string or enumerated value contains a comma or range symbol ("," or ".."). In a string value, use special backslash codes for non-alphanumeric characters, such as \r for a carriage return, \n for a line feed, and \t for a tab.

Case Structures

Where This Node Can Run:

Desktop OS: Windows

FPGA: All devices (only within an Optimized FPGA VI)

Recently Viewed Topics