Switch文
Goでは、caseに複数の値を指定できる。次のcaseの直前にfallthrough文を置くとフォールスルーになる。
C#でのswitch文はC言語と似たような見た目であるが、フォールスルーについての挙動は異なる。
C#では、caseラベルは文に付属する扱いとなるが、1つの文に複数のcaseラベルを付けることができる。また、C言語のようなフォールスルーは禁止されており、次のcaseラベル付きの文、あるいはswitchブロックの末端に、通常の制御フローで到達してはならない。すなわち、breakでswitchを抜ける、returnで関数ごと抜ける、例外を投げる、無限ループしてそれ以上進まない、goto caseするなどの書き方が必要となる。goto caseにより、C言語ではフォールスルーを使って書くことができた、制御の合流を書くことができる。
CやC++では、switch文の制御式には整数型の式、またcaseラベルには整定数式しか使用できないのに対し、C#ではそれぞれ文字列型および文字列リテラルも使用できる。また、整数型あるいは整数型に準ずる値型のnull許容型System.Nullableも使用することができる。
C# 7.0以降では型switchを使用できる。
PHPでは、C#と同様、文字列にも、switch文が適用できる。
PHPのswitch文においては、比較が===演算子ではなく==演算子で行われる。そのため、曖昧一致に起因し、開発者が予期しない動作となる場合がある。