Using the expression switch function, is there any way to declare a fall-through for cases like with C:
switch(x){
case a:
case b:
case c:
printf("Cases a, b, & c);
case d:
printf("Case d");
}
Using the expression switch function, is there any way to declare a fall-through for cases like with C:
switch(x){
case a:
case b:
case c:
printf("Cases a, b, & c);
case d:
printf("Case d");
}
You mean an expression for a binding? Here’s a way you do a switch statement
switch (
15 , // value
1 , // case 1
24 , // case 2
15 , // case 3
44 , // return 1
45 , // return 2
46 , // return 3
- 1 ) // default
https://docs.inductiveautomation.com/display/DOC80/switch
Though normally instead of hardcoding a value like 15
that is where you’d have some other property.
Yes, but am I able to do a fall-through like the C code I posed with a single return for cases 1-3?
No.
You’re best off making a separate property that checks a || b || c
and then having that as one of the switch cases.
Figured that was the case.
Note that the expression language doesn’t short-circuit sub-expression evaluation. Nor does it fold common sub-expressions. Anywhere those matter, the sub-expressions should be moved to separate bindings/expression tags.
As an aside I was confused, because your initial post mentions “C” (which only later you confirm as the language), and your example code shows “case c”
(and because there is no “break” statement, technically everything falls through to “d” anyway)