网络编程
位置:首页>> 网络编程>> Go语言>> go语言中fallthrough的用法说明

go语言中fallthrough的用法说明

作者:腾信@迪克猪  发布时间:2024-04-23 09:33:47 

标签:go,fallthrough

fallthrough:Go里面switch默认相当于每个case最后带有break,匹配成功后不会自动向下执行其他case,而是跳出整个switch, 但是可以使用fallthrough强制执行后面的case代码。

示例程序1:


switch {
   case false:
       fmt.Println("The integer was <= 4")
       fallthrough
   case true:
       fmt.Println("The integer was <= 5")
       fallthrough
   case false:
       fmt.Println("The integer was <= 6")
       fallthrough
   case true:
       fmt.Println("The integer was <= 7")
       fallthrough
   case false:
       fmt.Println("The integer was <= 8")
   default:
       fmt.Println("default case")
   }

输出结果:

The integer was <= 5

The integer was <= 6

The integer was <= 7

The integer was <= 8

问题:是否在switch最后一个分支使用fallthrough???

go语言中fallthrough的用法说明

有错误提示,显示:cannot fallthrough final case in switch

fallthrough不能用在switch的最后一个分支。

示例程序2:

上述示例是true、false常量进行分支判断,看如下变量示例。


s := "abcd"
   switch s[1] {
   case 'a':
       fmt.Println("The integer was <= 4")
       fallthrough
   case 'b':
       fmt.Println("The integer was <= 5")
       fallthrough
   case 'c':
       fmt.Println("The integer was <= 6")
   default:
       fmt.Println("default case")
   }

输出结果如下:

The integer was <= 5

The integer was <= 6

更改为:


s := "abcd"
   switch s[3] {
   case 'a':
       fmt.Println("The integer was <= 4")
       fallthrough
   case 'b':
       fmt.Println("The integer was <= 5")
       fallthrough
   case 'c':
       fmt.Println("The integer was <= 6")
   default:
       fmt.Println("default case")
   }

输出:

default case

总结:

switch分支中使用变量进行判断的时,fallthrough正确的分支开始其作用。

补充:【踩坑】golang的fallthrough大坑

加了fallthrough后,会直接运行【紧跟的后一个】case或default语句,不论条件是否满足都会执行,后面的条件并不会再判断了,?

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

来源:https://www.cnblogs.com/zsy/p/6741902.html

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com