User Guide Cancel

cfcase

 

Description

Used only inside the cfswitch tag body. Contains code to execute when the expression specified in the cfswitch tag has one or more specific values.

Category

Flow-control tags

Syntax

<cfcase
value = "value|delimited set of values"
delimiters = "delimiter characters">
<cfcase value = "value|delimited set of values" delimiters = "delimiter characters">
<cfcase 
value = "value|delimited set of values" 
delimiters = "delimiter characters">

See also

cfdefaultcasecfswitchcfswitchcfcase, and cfdefaultcase in the Developing ColdFusion Applications

History

ColdFusion 8: Changed the way ColdFusion parses cfcase values. Previously, cfcase tags with numeric value dates did not return expected results. For example, \<cfcase value="00"\> and \<cfcase value="0A\> were both evaluated to 0. The value "0A" was treated as a date and converted to 0 number of days from 12/30/1899. The value "00" was also evaluated to the value 0. This caused the exception "Context validation error for tag CFCASE. The CFSWITCH has a duplicate CFCASE for value "0.0"." The cfswitch tag now returns the expected result.

Attributes

Attribute

Req/Opt

Default

Description

value

Required

 

The value or values that the expression attribute of the cfswitch tag must match. To specify multiple matching values, separate the values with the delimiter character. The value or values must be simple constants or constant expressions, not variables.

delimiters

Optional

, (comma)

Specifies the delimiter character or characters that separate multiple values to match. If you specify multiple delimiter characters, you can use any of them to separate the values to be matched.

Usage

The contents of the cfcase tag body executes only if the expression attribute of the cfswitch tag evaluates to a value specified by the value attribute. The contents of the cfcase tag body can include HTML and text, and CFML tags, functions, variables, and expressions. You do not have to explicitly break out of the cfcase tag, as you do in some languages.One cfcase tag can match multiple expression values. To do this, separate the matching values with the default value of the delimiter character. For example the following line matches "red", "blue", or "green":

<cfcase value="red,blue,green">
<cfcase value="red,blue,green">
<cfcase value="red,blue,green">

You can use the delimiter attribute to specify one or more delimiters to use in place of the comma. For example, the following line matches "cargo, live", "cargo, liquid", and "cargo, solid":

<cfcase value="cargo, live;cargo, liquid-cargo, solid" delimiters=";-">
<cfcase value="cargo, live;cargo, liquid-cargo, solid" delimiters=";-">
<cfcase value="cargo, live;cargo, liquid-cargo, solid" delimiters=";-">

Example

<cfset language = "ColdFusion">
<cfswitch expression="#language#">
<cfcase value="ColdFusion">I like ColdFusion!</cfcase>
<cfcase value="Python;Julia" delimiters=";">I like Python!</cfcase>
<cfcase value="Java">I like Java!</cfcase>
<cfdefaultcase>Sorry, find your own language!</cfdefaultcase>
</cfswitch>
<cfset language = "ColdFusion"> <cfswitch expression="#language#"> <cfcase value="ColdFusion">I like ColdFusion!</cfcase> <cfcase value="Python;Julia" delimiters=";">I like Python!</cfcase> <cfcase value="Java">I like Java!</cfcase> <cfdefaultcase>Sorry, find your own language!</cfdefaultcase> </cfswitch>
<cfset language = "ColdFusion"> 
<cfswitch expression="#language#"> 
    <cfcase value="ColdFusion">I like ColdFusion!</cfcase>
    <cfcase value="Python;Julia" delimiters=";">I like Python!</cfcase> 
    <cfcase value="Java">I like Java!</cfcase>
    <cfdefaultcase>Sorry, find your own language!</cfdefaultcase> 
</cfswitch>

Using cfscript:

 

<cfscript>
language="ColdFusion"
switch(language){
case "ColdFusion":
writeOutput("I like ColdFusion")
break
case "Python": case "Julia":
writeOutput("I like Python")
break
case "Java":
writeOutput("I like Java")
break
default:
writeOutput("Sorry, bring your own language!")
break
}
</cfscript>
<cfscript> language="ColdFusion" switch(language){ case "ColdFusion": writeOutput("I like ColdFusion") break case "Python": case "Julia": writeOutput("I like Python") break case "Java": writeOutput("I like Java") break default: writeOutput("Sorry, bring your own language!") break } </cfscript>
<cfscript>
    language="ColdFusion"
    switch(language){
        case "ColdFusion":
            writeOutput("I like ColdFusion")
            break
        case "Python": case "Julia":
            writeOutput("I like Python")
            break
        case "Java":
            writeOutput("I like Java")
            break
        default:
            writeOutput("Sorry, bring your own language!")
            break
    }
</cfscript>

Get help faster and easier

New user?