GO语言基础-05-循环和语句-switch语句

1. 基本使用

1) 语法

switch var1 {
    case val1:
        ...
    case val2:
        ...
    default:
        ...
}

说明: case 条件: 执行命令

2) 示例

package main

import "fmt"

func main() {
   var grade string = "B"
   var marks int = 90

   switch marks {
      case 90: grade = "A"
      case 80: grade = "B"
      case 50,60,70 : grade = "C"
      default: grade = "D"  
   }

   switch {
      case grade == "A" :
         fmt.Printf("优秀!\n" )     
      case grade == "B", grade == "C" :
         fmt.Printf("良好\n" )      
      case grade == "D" :
         fmt.Printf("及格\n" )      
      case grade == "F":
         fmt.Printf("不及格\n" )
      default:
         fmt.Printf("差\n" );
   }
   fmt.Printf("你的等级是 %s\n", grade );      
}

输出

优秀!
你的等级是 A

2. Type Switch

1)语法

switch x.(type){
    case type:
       statement(s);      
    case type:
       statement(s); 
    /* 你可以定义任意个数的case */
    default: /* 可选 */
       statement(s);
}

2)示例:

package main
import "fmt"

func main() {
   var x interface{}
     
   switch i := x.(type) {
      case nil:   
         fmt.Printf(" x 的类型 :%T",i) 
      case int:   
         fmt.Printf("x 是 int 型") 
      case float64:
         fmt.Printf("x 是 float64 型") 
      case func(int) float64:
         fmt.Printf("x 是 func(int) 型") 
      case bool, string:
         fmt.Printf("x 是 bool 或 string 型" ) 
      default:
         fmt.Printf("未知型") 
   }   
}

说明:interface{}为接口类型

输出结果

x 的类型 :<nil>

3. fallthrough

说明:使用 fallthrough 会强制执行后面的 case 语句(即,fallthrough 不会判断下一条 case 的表达式结果是否为 true)

【示例】

  • 代码
package main

import "fmt"

func main() {

    switch {
    case false:
            fmt.Println("1、case 条件语句为 false")
            fallthrough
    case true:
            fmt.Println("2、case 条件语句为 true")
            fallthrough
    case false:
            fmt.Println("3、case 条件语句为 false")
            fallthrough
    case true:
            fmt.Println("4、case 条件语句为 true")
    case false:
            fmt.Println("5、case 条件语句为 false")
            fallthrough
    default:
            fmt.Println("6、默认 case")
    }
}

  • 输出
2、case 条件语句为 true
3、case 条件语句为 false
4、case 条件语句为 true

说明:false不会打印,true会打印,falthrough后边不管是什么都被打印


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玄德公笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值