• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

(转)Go语言switch语句和fallthrough用途

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
   Go里面switch默认相当于每个case最后带有break,匹配成功后不会自动向下执行其他case,而是跳出整个switch, 但是可以使用fallthrough强制执行后面
的case代码:

示例1:
package main
 
import "fmt"
 
func main() {
    num := 3
 
    switch num {
    case 1:
        fmt.Println("按下的是1楼")
    case 2:
        fmt.Println("按下的是2楼")
    case 3:
        fmt.Println("按下的是3楼")
    case 4:
        fmt.Println("按下的是4楼")
    }
}

#执行结果

按下的是3楼

示例2:

package main
 
import "fmt"
 
func main() {
    num := 5
 
    switch num {
    case 1:
        fmt.Println("按下的是1楼")
        //break //go语言保留了break关键字,跳出switch语言,不写,默认就包含了。
    case 2:
        fmt.Println("按下的是2楼")
    case 3:
        fmt.Println("按下的是3楼")
    case 4:
        fmt.Println("按下的是4楼")
    default:
        fmt.Println("按下的是xxx楼")
    }
}

#执行结果

按下的是xxx楼

示例3: 需要输入按下的楼层

package main
 
import "fmt"
 
func main() {
    var num int
    fmt.Printf("请按下楼层:")
    fmt.Scan(&num)
 
    switch num {
    case 1:
        fmt.Println("按下的是1楼")
    case 2:
        fmt.Println("按下的是2楼")
    case 3:
        fmt.Println("按下的是3楼")
    case 4:
        fmt.Println("按下的是4楼")
    default:
        fmt.Println("按下的是xxx楼")
    }
}

#执行结果:

请按下楼层:2   #输入2
按下的是2楼

用途:fallthrough //不跳出switch语句,后面的无条件执行

示例4:  

package main
 
import "fmt"
 
func main() {
    var num int
    fmt.Printf("请按下楼层:")
    fmt.Scan(&num)
 
    switch num {
    case 1:
        fmt.Println("按下的是1楼")
        fallthrough //不跳出switch语句,后面的无条件执行
    case 2:
        fmt.Println("按下的是2楼")
        fallthrough
    case 3:
        fmt.Println("按下的是3楼")
        fallthrough
    case 4:
        fmt.Println("按下的是4楼")
        fallthrough
    default:
        fmt.Println("按下的是xxx楼")
    }
}

#执行结果

请按下楼层:1
按下的是1楼
按下的是2楼
按下的是3楼
按下的是4楼
按下的是xxx楼

示例5: (推荐用法)

package main
 
import "fmt"
 
func main() {
 
    switch num := 1; num {
    case 1:
        fmt.Println("按下的是1楼")
    case 2:
        fmt.Println("按下的是2楼")
    case 3:
        fmt.Println("按下的是3楼")
    case 4:
        fmt.Println("按下的是4楼")
    default:
        fmt.Println("按下的是xxx楼")
    }
}

#执行结果:

按下的是1楼

示例6:  case 后面接数字,可以写多个

package main //必须有一个main包
 
import "fmt"
 
func main() {
    //支持一个初始化语句, 初始化语句和变量本身, 以分号分隔
    switch num := 4; num { //switch后面写的是变量本身
    case 1:
        fmt.Println("按下的是1楼")
 
    case 2:
        fmt.Println("按下的是2楼")
 
    case 3, 4, 5:
        fmt.Println("按下的是yyy楼")
 
    case 6:
        fmt.Println("按下的是4楼")
 
    default:
        fmt.Println("按下的是xxx楼")
    }
}

#执行结果:

按下的是yyy楼  

示例7:

package main
 
import "fmt"
 
func main() {
    score := 85
    switch {
    case score > 90:  //case后面可以放条件
        fmt.Println("优秀")
    case score > 80:
        fmt.Println("良好")
    case score > 70:
        fmt.Println("一般")
    default:
        fmt.Println("其它")
    }
}

#执行结果:

良好

转自:https://www.cnblogs.com/nulige/p/10202141.html


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
19 Go的全能ORM简单入门发布时间:2022-07-10
下一篇:
gostruct{}空结构体的特点和作用发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap