{"id":117,"date":"2024-09-03T16:42:38","date_gmt":"2024-09-03T09:42:38","guid":{"rendered":"https:\/\/gotutorial.org\/?page_id=117"},"modified":"2024-09-26T13:32:40","modified_gmt":"2024-09-26T06:32:40","slug":"go-switch","status":"publish","type":"page","link":"https:\/\/www.gotutorial.org\/go-tutorial\/go-switch\/","title":{"rendered":"Go switch"},"content":{"rendered":"\n<p><strong>Summary<\/strong>: in this tutorial, you will learn how to use the Go <code>switch<\/code> statement to match a value against multiple values to determine which branch to execute.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Introduction to the Go switch statement<\/h2>\n\n\n\n<p>In Go, the <code>switch<\/code> statement allows you to match a value against multiple possible values to decide which branch to execute.<\/p>\n\n\n\n<p>Here&#8217;s the general syntax of the Go <code>switch<\/code> statement:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"Go\" data-shcb-language-slug=\"go\"><span><code class=\"hljs language-go\"><span class=\"hljs-keyword\">switch<\/span> expression {\n   <span class=\"hljs-keyword\">case<\/span> value1:\n      <span class=\"hljs-comment\">\/\/ Code to run when expression == value1<\/span>\n   <span class=\"hljs-keyword\">case<\/span> value2:\n      <span class=\"hljs-comment\">\/\/ Code to run when expression == value2<\/span>\n   <span class=\"hljs-keyword\">default<\/span>:\n      <span class=\"hljs-comment\">\/\/ Code to run when no cases match<\/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\">Go<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">go<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In this syntax: <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>First, compare the <code>expression<\/code> with the <code>value1<\/code>, <code>value2<\/code>, &#8230; using the <code>=<\/code> operator and execute the corresponding branch if the <code>expression<\/code> is equal to <code>value1<\/code>, <code>value2<\/code>,&#8230; respectively.<\/li>\n\n\n\n<li>Second, if the <code>expression<\/code> is not equal to any values, execute the <code>default<\/code> branch.<\/li>\n<\/ul>\n\n\n\n<p>In Go, the <code>switch<\/code> statement is more concise compared to other programming languages such as <a href=\"https:\/\/www.csharptutorial.net\/csharp-tutorial\/c-switch\/\" target=\"_blank\" rel=\"noreferrer noopener\">C#<\/a> and <a href=\"https:\/\/www.zentut.com\/java-tutorial\/java-switch\/\" target=\"_blank\" rel=\"noreferrer noopener\">Java<\/a> because it includes an implicit <code>break<\/code> in each case. <\/p>\n\n\n\n<p>This Go&#8217;s design choice prevents a common mistake: forgetting to add a <code>break<\/code> statement, which can lead to unexpected behaviors. Go&#8217;s approach eliminates this issue.<\/p>\n\n\n\n<p>In Go, you can have multiple values in each case of the <code>switch<\/code> statement like this:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"Go\" data-shcb-language-slug=\"go\"><span><code class=\"hljs language-go\"><span class=\"hljs-keyword\">switch<\/span> expression {\n   <span class=\"hljs-keyword\">case<\/span> value1, value2:\n      <span class=\"hljs-comment\">\/\/ Code to run when expression == value1 or expression == value2<\/span>\n   <span class=\"hljs-keyword\">case<\/span> value3:\n      <span class=\"hljs-comment\">\/\/ Code to run when expression == value2<\/span>\n   <span class=\"hljs-keyword\">default<\/span>:\n      <span class=\"hljs-comment\">\/\/ Code to run when no cases match<\/span>\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Go<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">go<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>The following flow chart illustrates how the Go switch statement works:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/gotutorial.org\/wp-content\/uploads\/2024\/09\/go-switch.svg\" alt=\"Go switch\" class=\"wp-image-445\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Go switch statement examples<\/h2>\n\n\n\n<p>Let&#8217;s take some examples of using the <code>switch<\/code> statement.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Basic Go switch statement example<\/h3>\n\n\n\n<p>The following example uses the <code>switch<\/code> statement to determine the day of the week based on an integer (e.g., 1 for Monday, 2 for Tuesday, etc).<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"Go\" data-shcb-language-slug=\"go\"><span><code class=\"hljs language-go\"><span class=\"hljs-keyword\">package<\/span> main\n\n<span class=\"hljs-keyword\">import<\/span> <span class=\"hljs-string\">\"fmt\"<\/span>\n\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">func<\/span> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">()<\/span><\/span> {\n    dayNumber := <span class=\"hljs-number\">2<\/span>\n    <span class=\"hljs-keyword\">var<\/span> day <span class=\"hljs-keyword\">string<\/span>\n\n    <span class=\"hljs-keyword\">switch<\/span> dayNumber {\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">1<\/span>:\n        day = <span class=\"hljs-string\">\"Monday\"<\/span>\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">2<\/span>:\n        day = <span class=\"hljs-string\">\"Tuesday\"<\/span>\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">3<\/span>:\n        day = <span class=\"hljs-string\">\"Wednesday\"<\/span>\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">4<\/span>:\n        day = <span class=\"hljs-string\">\"Thursday\"<\/span>\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">5<\/span>:\n        day = <span class=\"hljs-string\">\"Friday\"<\/span>\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">6<\/span>:\n        day = <span class=\"hljs-string\">\"Saturday\"<\/span>\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">7<\/span>:\n        day = <span class=\"hljs-string\">\"Sunday\"<\/span>\n    <span class=\"hljs-keyword\">default<\/span>:\n        day = <span class=\"hljs-string\">\"Invalid day\"<\/span>\n    }\n    fmt.Println(day)\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Go<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">go<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Output:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Tuesday<\/code><\/span><\/pre>\n\n\n<p>In this example:<\/p>\n\n\n\n<p>First, declare the <code>dayNumber<\/code> variable and initialize its value to 2:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"Go\" data-shcb-language-slug=\"go\"><span><code class=\"hljs language-go\">dayNumber := <span class=\"hljs-number\">2<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Go<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">go<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Second, declare the <code>day<\/code> variable with the string type:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"Go\" data-shcb-language-slug=\"go\"><span><code class=\"hljs language-go\"><span class=\"hljs-keyword\">var<\/span> day <span class=\"hljs-keyword\">string<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Go<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">go<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Third, check the <code>dayNumber<\/code> against numbers from 1 to 7, and assign the day to the corresponding value i.e., 1 for Monday, 2 for Tuesday, etc.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"Go\" data-shcb-language-slug=\"go\"><span><code class=\"hljs language-go\"><span class=\"hljs-keyword\">switch<\/span> dayNumber {\n<span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">1<\/span>:\n    day = <span class=\"hljs-string\">\"Monday\"<\/span>\n<span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">2<\/span>:\n    day = <span class=\"hljs-string\">\"Tuesday\"<\/span>\n<span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">3<\/span>:\n    day = <span class=\"hljs-string\">\"Wednesday\"<\/span>\n<span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">4<\/span>:\n    day = <span class=\"hljs-string\">\"Thursday\"<\/span>\n<span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">5<\/span>:\n    day = <span class=\"hljs-string\">\"Friday\"<\/span>\n<span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">6<\/span>:\n    day = <span class=\"hljs-string\">\"Saturday\"<\/span>\n<span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">7<\/span>:\n    day = <span class=\"hljs-string\">\"Sunday\"<\/span>\n<span class=\"hljs-keyword\">default<\/span>:\n    day = <span class=\"hljs-string\">\"Invalid day\"<\/span>\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Go<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">go<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Finally, display the <code>dayName<\/code> variable:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"Go\" data-shcb-language-slug=\"go\"><span><code class=\"hljs language-go\">fmt.Println(day)<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Go<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">go<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Since the <code>dayNumber<\/code> variable is 2, the <code>day<\/code> will be Tuesday, and the output will show <code>Tuesday<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Multiple values example<\/h3>\n\n\n\n<p>To specify multiple values in the same case, you can use a comma-separated list:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"Go\" data-shcb-language-slug=\"go\"><span><code class=\"hljs language-go\"><span class=\"hljs-keyword\">package<\/span> main\n\n<span class=\"hljs-keyword\">import<\/span> <span class=\"hljs-string\">\"fmt\"<\/span>\n\n\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">func<\/span> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">()<\/span><\/span> {\n    day := <span class=\"hljs-number\">3<\/span>\n    <span class=\"hljs-keyword\">var<\/span> result <span class=\"hljs-keyword\">string<\/span>\n\n    <span class=\"hljs-keyword\">switch<\/span> day {\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">1<\/span>, <span class=\"hljs-number\">2<\/span>, <span class=\"hljs-number\">3<\/span>, <span class=\"hljs-number\">4<\/span>, <span class=\"hljs-number\">5<\/span>: \n        result = <span class=\"hljs-string\">\"Weekday\"<\/span>\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">6<\/span>,<span class=\"hljs-number\">7<\/span>:\n        result = <span class=\"hljs-string\">\"Weekend\"<\/span>\n    <span class=\"hljs-keyword\">default<\/span>:\n        result = <span class=\"hljs-string\">\"Invalid day\"<\/span>\n    }\n\n    fmt.Println(result)\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Go<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">go<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Output:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-9\" data-shcb-language-name=\"Go\" data-shcb-language-slug=\"go\"><span><code class=\"hljs language-go\">Weekday<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-9\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Go<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">go<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In this example, if the day is 1 to 5, the result is Weekday. If the day is 6 and 7, the result is Weekend. Otherwise, it&#8217;ll be an invalid day.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Go switch statement with initialization<\/h3>\n\n\n\n<p>Like the <a href=\"https:\/\/gotutorial.org\/go-tutorial\/go-if-else\/\">if statement<\/a>, Go allows you to include a short variable declaration in the <code>switch<\/code> statement. In this case, the variable will be accessible only within the <code>switch<\/code> block. For example:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-10\" data-shcb-language-name=\"Go\" data-shcb-language-slug=\"go\"><span><code class=\"hljs language-go\"><span class=\"hljs-keyword\">package<\/span> main\n\n<span class=\"hljs-keyword\">import<\/span> <span class=\"hljs-string\">\"fmt\"<\/span>\n\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">func<\/span> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">()<\/span><\/span> {\n    \n    <span class=\"hljs-keyword\">var<\/span> result <span class=\"hljs-keyword\">string<\/span>\n\n    <span class=\"hljs-keyword\">switch<\/span> day := <span class=\"hljs-number\">3<\/span>; day {\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">1<\/span>, <span class=\"hljs-number\">2<\/span>, <span class=\"hljs-number\">3<\/span>, <span class=\"hljs-number\">4<\/span>, <span class=\"hljs-number\">5<\/span>: \n        result  = <span class=\"hljs-string\">\"Weekday\"<\/span>\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">6<\/span>,<span class=\"hljs-number\">7<\/span>:\n        result  = <span class=\"hljs-string\">\"Weekend\"<\/span>\n    <span class=\"hljs-keyword\">default<\/span>:\n        result    = <span class=\"hljs-string\">\"Invalid day\"<\/span>\n    }\n\n    fmt.Println(result)\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-10\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Go<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">go<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In this example, we declare and initialize the <code>day<\/code> variable within the <code>switch<\/code> statement. If you attempt to access the <code>day<\/code> variable outside the <code>switch<\/code> statement, you&#8217;ll encounter a compile error.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Switch on true example<\/h3>\n\n\n\n<p>Go allows you to omit the expression in the <code>switch<\/code> statement. In this case, the <code>switch<\/code> with no value means the <code>switch true<\/code>. It is a more clear version of an if-else chain. <\/p>\n\n\n\n<p>The following example uses a <code>switch<\/code> statement without an expression to determine the quarter based on the month number:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-11\" data-shcb-language-name=\"Go\" data-shcb-language-slug=\"go\"><span><code class=\"hljs language-go\"><span class=\"hljs-keyword\">package<\/span> main\n\n<span class=\"hljs-keyword\">import<\/span> <span class=\"hljs-string\">\"fmt\"<\/span>\n\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">func<\/span> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">()<\/span><\/span> {\n    \n    month := <span class=\"hljs-number\">9<\/span>\n    <span class=\"hljs-keyword\">var<\/span> quarter <span class=\"hljs-keyword\">string<\/span>\n\n    <span class=\"hljs-keyword\">switch<\/span> {\n    <span class=\"hljs-keyword\">case<\/span> month &gt;= <span class=\"hljs-number\">1<\/span> &amp;&amp; month &lt;= <span class=\"hljs-number\">3<\/span>:\n        quarter = <span class=\"hljs-string\">\"Q1\"<\/span>\n    <span class=\"hljs-keyword\">case<\/span> month &gt;= <span class=\"hljs-number\">4<\/span> &amp;&amp; month &lt;= <span class=\"hljs-number\">6<\/span>:        \n        quarter = <span class=\"hljs-string\">\"Q2\"<\/span>\n    <span class=\"hljs-keyword\">case<\/span> month &gt;= <span class=\"hljs-number\">7<\/span> &amp;&amp; month &lt;= <span class=\"hljs-number\">9<\/span>:        \n        quarter = <span class=\"hljs-string\">\"Q3\"<\/span>\n    <span class=\"hljs-keyword\">case<\/span> month &gt;= <span class=\"hljs-number\">10<\/span> &amp;&amp; month &lt;= <span class=\"hljs-number\">12<\/span>:        \n        quarter = <span class=\"hljs-string\">\"Q4\"<\/span>\n    <span class=\"hljs-keyword\">default<\/span>:\n        quarter = <span class=\"hljs-string\">\"Invalid month\"<\/span>\n    }\n\n    fmt.Println(quarter)\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-11\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Go<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">go<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Output:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-12\" data-shcb-language-name=\"Go\" data-shcb-language-slug=\"go\"><span><code class=\"hljs language-go\">Q3<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-12\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Go<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">go<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In this example:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The <code>switch<\/code> statement has no expression, each case is a boolean expression.<\/li>\n\n\n\n<li>Since the month is 9, the third case is executed <code>month >= 7 &amp;&amp; month &lt;= 9<\/code>, resulting in the output <code>Q3<\/code>.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Fallthrough<\/h2>\n\n\n\n<p>To fall through the next case, you use the <code>fallthrough<\/code> keyword within a case block of the <code>switch<\/code> statement:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-13\" data-shcb-language-name=\"Go\" data-shcb-language-slug=\"go\"><span><code class=\"hljs language-go\"><span class=\"hljs-keyword\">switch<\/span> expression {\n   <span class=\"hljs-keyword\">case<\/span> value1:\n      <span class=\"hljs-comment\">\/\/ Code to run when expression == value1<\/span>\n      <span class=\"hljs-keyword\">fallthrough<\/span>\n   <span class=\"hljs-keyword\">case<\/span> value2:\n      <span class=\"hljs-comment\">\/\/ Code to run when expression == value2 <\/span>\n      <span class=\"hljs-comment\">\/\/ or expression == value1 due to fallthrough<\/span>\n   <span class=\"hljs-keyword\">default<\/span>:\n      <span class=\"hljs-comment\">\/\/ Code to run when no cases match<\/span>\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-13\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Go<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">go<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>The <code>fallthrough<\/code> keyword allows you to transfer control to the next case block, regardless of whether the condition for that block is true or false.<\/p>\n\n\n\n<p class=\"note\">Go requires that you place the <code>fallthrough<\/code> keyword as the last line of a case block or it&#8217;ll issue a compile error. <\/p>\n\n\n\n<p>For example:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-14\" data-shcb-language-name=\"Go\" data-shcb-language-slug=\"go\"><span><code class=\"hljs language-go\"><span class=\"hljs-keyword\">package<\/span> main\n\n<span class=\"hljs-keyword\">import<\/span> <span class=\"hljs-string\">\"fmt\"<\/span>\n\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">func<\/span> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">()<\/span><\/span> {\n    <span class=\"hljs-keyword\">switch<\/span> number := <span class=\"hljs-number\">1<\/span>; number {\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">1<\/span>:\n        fmt.Println(<span class=\"hljs-string\">\"One\"<\/span>)\n        <span class=\"hljs-keyword\">fallthrough<\/span>\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">2<\/span>: \n        fmt.Println(<span class=\"hljs-string\">\"Two\"<\/span>)\n    <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-number\">3<\/span>:\n        fmt.Println(<span class=\"hljs-string\">\"Three\"<\/span>)\n    }\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-14\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Go<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">go<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Output:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-15\" data-shcb-language-name=\"Go\" data-shcb-language-slug=\"go\"><span><code class=\"hljs language-go\">One\nTwo<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-15\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Go<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">go<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In this example, the keyword <code>fallthrough<\/code> transfers the control to the first line of case 2 so that this block also gets executed.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Summary<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use <code>switch<\/code> statement to compare a value against multiple values and execute the respective code block.<\/li>\n\n\n\n<li>The <code>switch<\/code> statement uses an implicit <code>break<\/code> statement in each <code>case<\/code>.<\/li>\n\n\n\n<li>The <code>switch<\/code> statement without an expression is like the <code>switch true<\/code>; each case is a boolean expression. It is a clearer version of an <code>if else<\/code> chain.<\/li>\n\n\n\n<li>Use the <code>fallthrough<\/code> keyword to transfer the control to the next case, regardless of whether the condition for that case block is true or false.<\/li>\n<\/ul>\n<div class=\"helpful-block-content\" data-title=\"\">\n\t<div class=\"wth-question\">Was this tutorial helpful?<\/div>\n\t<div class=\"wth-thumbs\">\n\t\t<button\n\t\t\tdata-post=\"117\"\n\t\t\tdata-post-url=\"https:\/\/www.gotutorial.org\/go-tutorial\/go-switch\/\"\n\t\t\tdata-post-title=\"Go switch\"\n\t\t\tdata-response=\"1\"\n\t\t\tclass=\"wth-btn-rounded wth-yes-btn\"\n\t\t>\n\t\t\t<svg\n\t\t\t\txmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\tfill=\"none\"\n\t\t\t\tstroke=\"currentColor\"\n\t\t\t\tstroke-width=\"2\"\n\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\tstroke-linejoin=\"round\"\n\t\t\t\tclass=\"feather feather-thumbs-up block w-full h-full\"\n\t\t\t>\n\t\t\t\t<path\n\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><\/path>\n\t\t\t<\/svg>\n\t\t\t<span class=\"sr-only\"> Yes <\/span>\n\t\t<\/button>\n\n\t\t<button\n\t\t\tdata-response=\"0\"\n\t\t\tdata-post=\"117\"\n\t\t\tdata-post-url=\"https:\/\/www.gotutorial.org\/go-tutorial\/go-switch\/\"\n\t\t\tdata-post-title=\"Go switch\"\n\t\t\tclass=\"wth-btn-rounded wth-no-btn\"\n\t\t>\n\t\t\t<svg\n\t\t\t\txmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\tfill=\"none\"\n\t\t\t\tstroke=\"currentColor\"\n\t\t\t\tstroke-width=\"2\"\n\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\tstroke-linejoin=\"round\"\n\t\t\t>\n\t\t\t\t<path\n\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><\/path>\n\t\t\t<\/svg>\n\t\t\t<span class=\"sr-only\"> No <\/span>\n\t\t<\/button>\n\t<\/div>\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<textarea class=\"wth-message\"><\/textarea>\n\t\t\t<input type=\"button\" name=\"wth-submit\" class=\"wth-btn wth-btn-submit\" id=\"wth-submit\" \/>\n\t\t\t<input type=\"button\" class=\"wth-btn wth-btn-cancel\" value=\"Cancel\" \/>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Summary: in this tutorial, you will learn how to use the Go switch statement to match a value against multiple values to determine which branch to execute. Introduction to the Go switch statement In Go, the switch statement allows you to match a value against multiple possible values to decide which branch to execute. Here&#8217;s [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":10,"menu_order":7,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-117","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.gotutorial.org\/wp-json\/wp\/v2\/pages\/117","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gotutorial.org\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.gotutorial.org\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.gotutorial.org\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gotutorial.org\/wp-json\/wp\/v2\/comments?post=117"}],"version-history":[{"count":13,"href":"https:\/\/www.gotutorial.org\/wp-json\/wp\/v2\/pages\/117\/revisions"}],"predecessor-version":[{"id":465,"href":"https:\/\/www.gotutorial.org\/wp-json\/wp\/v2\/pages\/117\/revisions\/465"}],"up":[{"embeddable":true,"href":"https:\/\/www.gotutorial.org\/wp-json\/wp\/v2\/pages\/10"}],"wp:attachment":[{"href":"https:\/\/www.gotutorial.org\/wp-json\/wp\/v2\/media?parent=117"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}