{"id":168,"date":"2021-12-24T09:20:17","date_gmt":"2021-12-24T02:20:17","guid":{"rendered":"https:\/\/csharptutorial.net\/?page_id=168"},"modified":"2023-07-02T18:57:45","modified_gmt":"2023-07-02T11:57:45","slug":"c-switch","status":"publish","type":"page","link":"https:\/\/www.csharptutorial.net\/csharp-tutorial\/c-switch\/","title":{"rendered":"C# switch"},"content":{"rendered":"\n<p><strong>Summary<\/strong>: in this tutorial, you&#8217;ll learn how to use the C# <code>switch<\/code> statement to select a block for execution if an expression matches a pattern.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Introduction to the C# switch statement<\/h2>\n\n\n\n<p>The <code>switch<\/code> statement evaluates an expression and selects a block for execution if the expression satisfies a condition. The syntax of the <code>switch<\/code> statement is as follows:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-keyword\">switch<\/span> (expression)\n{\n    <span class=\"hljs-keyword\">case<\/span> label1:\n        <span class=\"hljs-comment\">\/\/ block1;<\/span>\n        <span class=\"hljs-keyword\">break<\/span>;\n    <span class=\"hljs-keyword\">case<\/span> label2:\n        <span class=\"hljs-comment\">\/\/ block2;<\/span>\n        <span class=\"hljs-keyword\">break<\/span>;\n    <span class=\"hljs-keyword\">case<\/span> label3:\n        <span class=\"hljs-comment\">\/\/ block3;<\/span>\n        <span class=\"hljs-keyword\">break<\/span>;\n    <span class=\"hljs-keyword\">default<\/span>:\n        <span class=\"hljs-comment\">\/\/ blockn;<\/span>\n        <span class=\"hljs-keyword\">break<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In this syntax, the <code>switch<\/code> statement matches the <code>expression<\/code> with <code>label1<\/code>, <code>label2<\/code>, <code>label3<\/code>, &#8230; in each <code>case<\/code> clause from top to bottom. <\/p>\n\n\n\n<p>If the <code>expression<\/code> matches a <code>label<\/code>, the <code>switch<\/code> statement will execute the corresponding block and pass the control to the following statement. <\/p>\n\n\n\n<p>If the <code>expression<\/code> doesn&#8217;t match any label, the <code>switch<\/code> statement executes the block in the <code>default<\/code> clause. <\/p>\n\n\n\n<p>The <code>default<\/code> clause is optional. If you don&#8217;t specify it and the <code>expression<\/code> doesn&#8217;t match any <code>label<\/code>, the <code>switch<\/code> statement doesn&#8217;t execute any block and passes the control to the statement after it.<\/p>\n\n\n\n<p>The switch statement uses <a href=\"https:\/\/docs.microsoft.com\/en-us\/dotnet\/csharp\/language-reference\/operators\/patterns\" target=\"_blank\" rel=\"noreferrer noopener\">many patterns<\/a> to match the expression with the labels. In this tutorial, you&#8217;ll focus on the following patterns:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A constant pattern: test if the result of the expresion is equal to a constant.<\/li>\n\n\n\n<li>A&nbsp;relational pattern: compare the result of the expression with a constant using a relational operator such as &lt;, &lt;=, &gt;, &gt;=.<\/li>\n<\/ul>\n\n\n\n<p>The following flowchart illustrates how the <code>switch<\/code> statement works.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"https:\/\/csharptutorial.net\/wp-content\/uploads\/2022\/01\/csharp-switch.svg\" alt=\"c# switch\" class=\"wp-image-532\"\/><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">C# switch statement example<\/h2>\n\n\n\n<p>The following program uses the <code>switch<\/code> statement to display the month name based on the month number entered by users:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\">Console.Write(<span class=\"hljs-string\">\"Enter a month(1-12): \"<\/span>);\n<span class=\"hljs-keyword\">int<\/span> month = Convert.ToInt32(Console.ReadLine());\n\n<span class=\"hljs-keyword\">string<\/span> name;\n\n<span class=\"hljs-keyword\">switch<\/span> (month)\n{\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">1<\/span>:\n        name = <span class=\"hljs-string\">\"Jan\"<\/span>;\n        <span class=\"hljs-keyword\">break<\/span>;\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">2<\/span>:\n        name = <span class=\"hljs-string\">\"Feb\"<\/span>;\n        <span class=\"hljs-keyword\">break<\/span>;\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">3<\/span>:\n        name = <span class=\"hljs-string\">\"Mar\"<\/span>;\n        <span class=\"hljs-keyword\">break<\/span>;\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">4<\/span>:\n        name = <span class=\"hljs-string\">\"Apr\"<\/span>;\n        <span class=\"hljs-keyword\">break<\/span>;\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">5<\/span>:\n        name = <span class=\"hljs-string\">\"May\"<\/span>;\n        <span class=\"hljs-keyword\">break<\/span>;\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">6<\/span>:\n        name = <span class=\"hljs-string\">\"Jun\"<\/span>;\n        <span class=\"hljs-keyword\">break<\/span>;\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">7<\/span>:\n        name = <span class=\"hljs-string\">\"Jul\"<\/span>;\n        <span class=\"hljs-keyword\">break<\/span>;\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">8<\/span>:\n        name = <span class=\"hljs-string\">\"Aug\"<\/span>;\n        <span class=\"hljs-keyword\">break<\/span>;\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">9<\/span>:\n        name = <span class=\"hljs-string\">\"Sep\"<\/span>;\n        <span class=\"hljs-keyword\">break<\/span>;\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">10<\/span>:\n        name = <span class=\"hljs-string\">\"Nov\"<\/span>;\n        <span class=\"hljs-keyword\">break<\/span>;\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">11<\/span>:\n        name = <span class=\"hljs-string\">\"Dec\"<\/span>;\n        <span class=\"hljs-keyword\">break<\/span>;\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">12<\/span>:\n        name = <span class=\"hljs-string\">\"Aug\"<\/span>;\n        <span class=\"hljs-keyword\">break<\/span>;\n    <span class=\"hljs-keyword\">default<\/span>:\n        name = <span class=\"hljs-string\">\"Invalid month\"<\/span>;\n        <span class=\"hljs-keyword\">break<\/span>;\n}\n\n\nConsole.WriteLine(name);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>How it works.<\/p>\n\n\n\n<p>First, prompt users to input a number from 1 to 12:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\">Console.Write(<span class=\"hljs-string\">\"Enter a month(1-12): \"<\/span>);\n<span class=\"hljs-keyword\">int<\/span> month = Convert.ToInt32(Console.ReadLine());<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Second, match the input month number with a number from 1 to 12 using the <code>switch<\/code> statement and assign the month name accordingly. <\/p>\n\n\n\n<p>If the month number is not in the range of 1 to 12, the month name will be &#8220;Invalid month&#8221;:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-keyword\">string<\/span> name;\n\n<span class=\"hljs-keyword\">switch<\/span> (month)\n{\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">1<\/span>:\n        name = <span class=\"hljs-string\">\"Jan\"<\/span>;\n        <span class=\"hljs-keyword\">break<\/span>;\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">2<\/span>:\n        name = <span class=\"hljs-string\">\"Feb\"<\/span>;\n        <span class=\"hljs-keyword\">break<\/span>;\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">3<\/span>:\n        name = <span class=\"hljs-string\">\"Mar\"<\/span>;\n        <span class=\"hljs-keyword\">break<\/span>;\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">4<\/span>:\n        name = <span class=\"hljs-string\">\"Apr\"<\/span>;\n        <span class=\"hljs-keyword\">break<\/span>;\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">5<\/span>:\n        name = <span class=\"hljs-string\">\"May\"<\/span>;\n        <span class=\"hljs-keyword\">break<\/span>;\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">6<\/span>:\n        name = <span class=\"hljs-string\">\"Jun\"<\/span>;\n        <span class=\"hljs-keyword\">break<\/span>;\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">7<\/span>:\n        name = <span class=\"hljs-string\">\"Jul\"<\/span>;\n        <span class=\"hljs-keyword\">break<\/span>;\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">8<\/span>:\n        name = <span class=\"hljs-string\">\"Aug\"<\/span>;\n        <span class=\"hljs-keyword\">break<\/span>;\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">9<\/span>:\n        name = <span class=\"hljs-string\">\"Sep\"<\/span>;\n        <span class=\"hljs-keyword\">break<\/span>;\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">10<\/span>:\n        name = <span class=\"hljs-string\">\"Nov\"<\/span>;\n        <span class=\"hljs-keyword\">break<\/span>;\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">11<\/span>:\n        name = <span class=\"hljs-string\">\"Dec\"<\/span>;\n        <span class=\"hljs-keyword\">break<\/span>;\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">12<\/span>:\n        name = <span class=\"hljs-string\">\"Aug\"<\/span>;\n        <span class=\"hljs-keyword\">break<\/span>;\n    <span class=\"hljs-keyword\">default<\/span>:\n        name = <span class=\"hljs-string\">\"Invalid month\"<\/span>;\n        <span class=\"hljs-keyword\">break<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Third, display the month name:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\">Console.WriteLine(name);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Group case in the C# switch statement<\/h2>\n\n\n\n<p>If you have the same block that corresponds to multiple cases, you can group cases in the <code>switch<\/code> statement like this:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-keyword\">switch<\/span> (expression)\n{\n\n    <span class=\"hljs-keyword\">case<\/span> firstCase:\n    <span class=\"hljs-keyword\">case<\/span> secondCase:\n        <span class=\"hljs-comment\">\/\/ block 1<\/span>\n        <span class=\"hljs-keyword\">break<\/span>;\n\n    <span class=\"hljs-keyword\">case<\/span> thirdCase:\n    <span class=\"hljs-keyword\">case<\/span> fourthCase:\n        <span class=\"hljs-comment\">\/\/ block 2<\/span>\n        <span class=\"hljs-keyword\">break<\/span>;\n    <span class=\"hljs-keyword\">default<\/span>:\n        <span class=\"hljs-comment\">\/\/ block n<\/span>\n        <span class=\"hljs-keyword\">break<\/span>;\n\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In this syntax, the <code>switch<\/code> statement will execute block 1 if the <code>expression<\/code> matches the <code>firstCase<\/code> and <code>secondCase<\/code>. Likewise, it&#8217;ll execute block 2 if the <code>expression<\/code> matches the <code>thirdCase<\/code> and <code>fourthCase<\/code>.<\/p>\n\n\n\n<p>If the <code>expression<\/code> doesn&#8217;t match any labels in the <code>case<\/code> clauses, it&#8217;ll execute the block n in the <code>default<\/code> clause.<\/p>\n\n\n\n<p>The following example prompts users to input a month number and display the corresponding quarter name of that month:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\">Console.Write(<span class=\"hljs-string\">\"Enter a month(1-12): \"<\/span>);\n<span class=\"hljs-keyword\">int<\/span> month = Convert.ToInt32(Console.ReadLine());\n\n<span class=\"hljs-keyword\">string<\/span> quarter;\n\n<span class=\"hljs-keyword\">switch<\/span> (month)\n{\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">1<\/span>:\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">2<\/span>:\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">3<\/span>:\n        quarter = <span class=\"hljs-string\">\"Q1\"<\/span>;\n        <span class=\"hljs-keyword\">break<\/span>;\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">4<\/span>:\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">5<\/span>:\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">6<\/span>:\n        quarter = <span class=\"hljs-string\">\"Q2\"<\/span>;\n        <span class=\"hljs-keyword\">break<\/span>;\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">7<\/span>:\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">8<\/span>:\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">9<\/span>:\n        quarter = <span class=\"hljs-string\">\"Q3\"<\/span>;\n        <span class=\"hljs-keyword\">break<\/span>;\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">10<\/span>:\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">11<\/span>:\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">12<\/span>:\n        quarter = <span class=\"hljs-string\">\"Q4\"<\/span>;\n        <span class=\"hljs-keyword\">break<\/span>;\n\n    <span class=\"hljs-keyword\">default<\/span>:\n        quarter = <span class=\"hljs-string\">\"Invalid quarter\"<\/span>;\n        <span class=\"hljs-keyword\">break<\/span>;\n}\n\nConsole.WriteLine(quarter);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>How it works.<\/p>\n\n\n\n<p>First, prompt users to input a month number from 1 to 12:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\">Console.Write(<span class=\"hljs-string\">\"Enter a month(1-12): \"<\/span>);\n<span class=\"hljs-keyword\">int<\/span> month = Convert.ToInt32(Console.ReadLine());<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Second, set the quarter based on the month number using the <code>switch<\/code> statement with group cases:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-9\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-keyword\">string<\/span> quarter;\n\n<span class=\"hljs-keyword\">switch<\/span> (month)\n{\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">1<\/span>:\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">2<\/span>:\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">3<\/span>:\n        quarter = <span class=\"hljs-string\">\"Q1\"<\/span>;\n        <span class=\"hljs-keyword\">break<\/span>;\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">4<\/span>:\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">5<\/span>:\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">6<\/span>:\n        quarter = <span class=\"hljs-string\">\"Q2\"<\/span>;\n        <span class=\"hljs-keyword\">break<\/span>;\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">7<\/span>:\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">8<\/span>:\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">9<\/span>:\n        quarter = <span class=\"hljs-string\">\"Q3\"<\/span>;\n        <span class=\"hljs-keyword\">break<\/span>;\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">10<\/span>:\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">11<\/span>:\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">12<\/span>:\n        quarter = <span class=\"hljs-string\">\"Q4\"<\/span>;\n        <span class=\"hljs-keyword\">break<\/span>;\n\n    <span class=\"hljs-keyword\">default<\/span>:\n        quarter = <span class=\"hljs-string\">\"Invalid quarter\"<\/span>;\n        <span class=\"hljs-keyword\">break<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-9\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Third, display the quarter name:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-10\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\">Console.WriteLine(quarter);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-10\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">C# switch statement with relation pattern example<\/h2>\n\n\n\n<p>Starting in C# 9, you can use use the relational operator <code>><\/code>, <code>>=<\/code>, <code>&lt;<\/code>, <code>&lt;=<\/code> to match the result of the expression with constants in the <code>switch<\/code> statement.<\/p>\n\n\n\n<p>We&#8217;ll rewrite the body mass index (BMI) calculation program in the <a href=\"https:\/\/csharptutorial.net\/csharp-tutorial\/csharp-if-else-if\/\"><code>if else if<\/code> statement tutorial<\/a> using the <code>switch<\/code> statement with the relational pattern:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-11\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\">Console.WriteLine(<span class=\"hljs-string\">\"Body Mass Index (BMI) Calculation\"<\/span>);\n\nConsole.WriteLine(<span class=\"hljs-string\">\"Enter a weight (kg):\"<\/span>);\n<span class=\"hljs-keyword\">var<\/span> weight = Convert.ToDouble(Console.ReadLine());\n\nConsole.WriteLine(<span class=\"hljs-string\">\"Enter a height (m):\"<\/span>);\n<span class=\"hljs-keyword\">var<\/span> height = Convert.ToDouble(Console.ReadLine());\n\n\n<span class=\"hljs-keyword\">double<\/span> bmi = weight \/ (height * height);\n<span class=\"hljs-keyword\">string<\/span> weightStatus = <span class=\"hljs-string\">\"\"<\/span>;\n\n<span class=\"hljs-keyword\">switch<\/span> (bmi)\n{\n    <span class=\"hljs-keyword\">case<\/span> &lt; <span class=\"hljs-number\">18.5<\/span>:\n        weightStatus = <span class=\"hljs-string\">\"Underweight\"<\/span>;\n        <span class=\"hljs-keyword\">break<\/span>;\n    <span class=\"hljs-keyword\">case<\/span> &gt;= <span class=\"hljs-number\">18.5<\/span> and &lt;= <span class=\"hljs-number\">24.9<\/span>:\n        weightStatus = <span class=\"hljs-string\">\"Healthy Weight\"<\/span>;\n        <span class=\"hljs-keyword\">break<\/span>;\n    <span class=\"hljs-keyword\">case<\/span> &gt;= <span class=\"hljs-number\">25<\/span> and &lt;= <span class=\"hljs-number\">29.9<\/span>:\n        weightStatus = <span class=\"hljs-string\">\"Overweight\"<\/span>;\n        <span class=\"hljs-keyword\">break<\/span>;\n    <span class=\"hljs-keyword\">case<\/span> &gt; <span class=\"hljs-number\">30<\/span>:\n        weightStatus = <span class=\"hljs-string\">\"Obesity\"<\/span>;\n        <span class=\"hljs-keyword\">break<\/span>;\n}\n\n\nConsole.WriteLine(<span class=\"hljs-string\">$\"BMI: <span class=\"hljs-subst\">{bmi:<span class=\"hljs-number\">0.<\/span>#}<\/span>\"<\/span>);\nConsole.WriteLine(<span class=\"hljs-string\">$\"Weight status:<span class=\"hljs-subst\">{ weightStatus}<\/span>\"<\/span>);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-11\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>How it works.<\/p>\n\n\n\n<p>First, prompt users to enter their weight in <code>kg<\/code> and height in <code>m<\/code>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-12\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\">Console.WriteLine(<span class=\"hljs-string\">\"Body Mass Index (BMI) Calculation\"<\/span>);\n\nConsole.WriteLine(<span class=\"hljs-string\">\"Enter a weight (kg):\"<\/span>);\n<span class=\"hljs-keyword\">var<\/span> weight = Convert.ToDouble(Console.ReadLine());\n\nConsole.WriteLine(<span class=\"hljs-string\">\"Enter a height (m):\"<\/span>);\n<span class=\"hljs-keyword\">var<\/span> height = Convert.ToDouble(Console.ReadLine());<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-12\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Second, calculate the BMI by taking the weight divided by the square of height:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-13\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-keyword\">double<\/span> bmi = weight \/ (height * height);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-13\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Third, assign the weight status based on the BMI value:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-14\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-keyword\">string<\/span> weightStatus = <span class=\"hljs-string\">\"\"<\/span>;\n\n<span class=\"hljs-keyword\">switch<\/span> (bmi)\n{\n    <span class=\"hljs-keyword\">case<\/span> &lt; <span class=\"hljs-number\">18.5<\/span>:\n        weightStatus = <span class=\"hljs-string\">\"Underweight\"<\/span>;\n        <span class=\"hljs-keyword\">break<\/span>;\n    <span class=\"hljs-keyword\">case<\/span> &gt;= <span class=\"hljs-number\">18.5<\/span> and &lt;= <span class=\"hljs-number\">24.9<\/span>:\n        weightStatus = <span class=\"hljs-string\">\"Healthy Weight\"<\/span>;\n        <span class=\"hljs-keyword\">break<\/span>;\n    <span class=\"hljs-keyword\">case<\/span> &gt;= <span class=\"hljs-number\">25<\/span> and &lt;= <span class=\"hljs-number\">29.9<\/span>:\n        weightStatus = <span class=\"hljs-string\">\"Overweight\"<\/span>;\n        <span class=\"hljs-keyword\">break<\/span>;\n    <span class=\"hljs-keyword\">case<\/span> &gt; <span class=\"hljs-number\">30<\/span>:\n        weightStatus = <span class=\"hljs-string\">\"Obesity\"<\/span>;\n        <span class=\"hljs-keyword\">break<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-14\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Finally, display the BMI and weight status:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-15\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\">Console.WriteLine(<span class=\"hljs-string\">$\"BMI: <span class=\"hljs-subst\">{bmi:<span class=\"hljs-number\">0.<\/span>#}<\/span>\"<\/span>);\nConsole.WriteLine(<span class=\"hljs-string\">$\"Weight status:<span class=\"hljs-subst\">{ weightStatus}<\/span>\"<\/span>);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-15\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>As you can see, the <code>switch<\/code> statement is much more readable than the <code>if else if<\/code> statement. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Summary<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use the <code>switch<\/code> statement to execute a block if an expression matches a pattern.<\/li>\n\n\n\n<li>The <code>switch<\/code> statement uses many matching patterns.<\/li>\n\n\n\n<li>Use the constant pattern to test if the expression result is equal to a constant.<\/li>\n\n\n\n<li>Use the relational pattern to test the expression result with a constant using the relational operator &lt;, &lt;=, >, >=. <\/li>\n\n\n\n<li>Use a group case to execute the same block that corresponds to multiple cases.<\/li>\n\n\n\n<li>The <code>switch<\/code> statement executes the block in the <code>default<\/code> clause if the expression doesn&#8217;t match any cases. The default clause is optional.<\/li>\n<\/ul>\n<div class=\"helpful-block-content\" data-title=\"\">\n\t<header>\n\t\t<div class=\"wth-question\">Was this tutorial helpful ?<\/div>\n\t\t<div class=\"wth-thumbs\">\n\t\t\t<button\n\t\t\t\tdata-post=\"168\"\n\t\t\t\tdata-post-url=\"https:\/\/www.csharptutorial.net\/csharp-tutorial\/c-switch\/\"\n\t\t\t\tdata-post-title=\"C# switch\"\n\t\t\t\tdata-response=\"1\"\n\t\t\t\tclass=\"wth-btn-rounded wth-yes-btn\"\n\t\t\t>\n\t\t\t\t<svg\n\t\t\t\t\txmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\tstroke-linejoin=\"round\"\n\t\t\t\t\tclass=\"feather feather-thumbs-up block w-full h-full\"\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3\"\n\t\t\t\t\t><\/path>\n\t\t\t\t<\/svg>\n\t\t\t\t<span class=\"sr-only\"> Yes <\/span>\n\t\t\t<\/button>\n\n\t\t\t<button\n\t\t\t\tdata-response=\"0\"\n\t\t\t\tdata-post=\"168\"\n\t\t\t\tdata-post-url=\"https:\/\/www.csharptutorial.net\/csharp-tutorial\/c-switch\/\"\n\t\t\t\tdata-post-title=\"C# switch\"\n\t\t\t\tclass=\"wth-btn-rounded wth-no-btn\"\n\t\t\t>\n\t\t\t\t<svg\n\t\t\t\t\txmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\tstroke-linejoin=\"round\"\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M10 15v4a3 3 0 0 0 3 3l4-9V2H5.72a2 2 0 0 0-2 1.7l-1.38 9a2 2 0 0 0 2 2.3zm7-13h2.67A2.31 2.31 0 0 1 22 4v7a2.31 2.31 0 0 1-2.33 2H17\"\n\t\t\t\t\t><\/path>\n\t\t\t\t<\/svg>\n\t\t\t\t<span class=\"sr-only\"> No <\/span>\n\t\t\t<\/button>\n\t\t<\/div>\n\t<\/header>\n\n\t<div class=\"wth-form hidden\">\n\t\t<div class=\"wth-form-wrapper\">\n\t\t\t<div class=\"wth-title\"><\/div>\n\t\t\t\n\t\t\t<textarea class=\"wth-message\"><\/textarea>\n\n\t\t\t<button class=\"btn btn-primary wth-btn-submit\">Send<\/button>\n\t\t\t<button class=\"btn wth-btn-cancel\">Cancel<\/button>\n\t\t\n\t\t<\/div>\n\t<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>In this tutorial, you&#8217;ll learn how to use the C# switch statement to select a block for execution if an expression matches a pattern.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":7,"menu_order":15,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-168","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/pages\/168","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/comments?post=168"}],"version-history":[{"count":5,"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/pages\/168\/revisions"}],"predecessor-version":[{"id":2524,"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/pages\/168\/revisions\/2524"}],"up":[{"embeddable":true,"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/pages\/7"}],"wp:attachment":[{"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/media?parent=168"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}