当前位置: 首页 > news >正文

做网站javaee桂林最新消息今天

做网站javaee,桂林最新消息今天,打开网站,租车网站制作方案break语句常用来中断循环。当循环与switch或select一起使用时,开发者经常执行了错误的break语句。 让我们来看下面的示例。我们在for循环里使用了switch,如果循环索引值是2,那么我们想中断循环: package mainimport ("fmt" )func …

        break语句常用来中断循环。当循环与switch或select一起使用时,开发者经常执行了错误的break语句。

        让我们来看下面的示例。我们在for循环里使用了switch,如果循环索引值是2,那么我们想中断循环:

package mainimport ("fmt"
)func main() {for i := 0; i < 5; i++ {fmt.Printf("%d ", i)switch i {default:case 2:break}}
}

 这段代码乍一看没什么问题;然而,它不像我们想象的那样运作。break语句没有中断for循环,而是中断了switch语句。因此这段代码从0迭代到4:0 1 2 3 4,而不是从0 迭代到2。

        要记住的一个基本规则是,break语句终止最里面的for、switch或select语句,在上面的例子中,它中断的是switch语句。

那如何跳出循环而不是switch语句呢?最常用的方式是使用标签:

package mainimport ("fmt"
)func main() {
loop:for i := 0; i < 5; i++ {fmt.Printf("%d ", i)switch i {default:case 2:break loop}}
}

这里,我们将loop标签与for循环关联起来。然后,由于我们给break语句提供了loop标签,它跳出了循环而不是switch语句,因此这个正如我们期望的,打印0 1 2。

带标签的break和goto一样吗?

        一些开发者可能会质疑使用带标签的break是否是习惯用法,并把它当作花哨的goto语句,然而,事实并非如此,这样的代码也在标准库中被使用。比如在net/http包中,从一个缓冲区中按行读取:

readlines:for {line,err := rw.Body.ReadString('\n')switch {case err == io.EOF:break readlinescase err != nil:t.Fatalf("unexpected error reading from CGI: %v",err)}//...}

这个例子使用了简明的readlibes标签来强调循环的目标。因此,我们应该认为,在Go中使用标签中断语句是一个习惯用法。

        break 语句也可能错误地出现在循环内的select语句中。在下面这段代码中,我们想用带有两个case的select语句,在上下文被取消时退出循环:

for {select {case <-ch://做具体操作case <-ctx.Done():break	//如果上下文被取消则中断执行}
}

这里,最里面的for、switch或select语句是select语句,而不是for循环。所以循环仍重复进行。同样地,我们可以使用标签中断循环:

loop:	//定义循环标签
for {select {case <-ch://做具体操作case <-ctx.Done():break loop 	//终止loop标签关联的循环,而不是select}
}

现在和预期一致,break语句跳出了循环而不是跳出select 语句。

        在循环中使用switch或select时要保持谨慎。当使用break时,应始终确保我们知道哪个语句会受影响,正如我们看到的,使用标签强制退出特定语句是惯用的解决方案。

http://www.dinnco.com/news/21272.html

相关文章:

  • 深圳营销型网站长尾关键词挖掘站长工具
  • java学校网站开发哪些浏览器可以看禁止访问的网站
  • 网站开发合同支付青岛seo网络推广
  • 制作网站的模板下载seo优化知识
  • 网站建设和Java地推接单平台
  • wordpress怎么写网站关键词和描述全网营销整合推广
  • 手机app开发与应用青岛seo网站建设公司
  • 赛门仕博做网站怎么样微信社群营销怎么做
  • 做二手房网站购物网站
  • 前端怎么做网站企业网络推广方式
  • wordpress html5视频播放插件seo标题优化的方法
  • 免费制作模板网站seo研究中心vip教程
  • 做自媒体一般都注册几个网站镇江网站建设方案
  • 怎么做通知维护网站网上哪里可以免费打广告
  • 西安网站制作公司排名关键词优化意见
  • 徐州网站建设优化磁力搜索引擎torrentkitty
  • 几分钟弄清楚php做网站网站快速有排名
  • 网站优化待遇seo服务公司怎么收费
  • 济南市商务局官方网站线上推广的渠道有哪些
  • 在网站上做的图表怎么放到PPT里面厦门seo代运营
  • 用子域名可以做网站吗青岛网站建设公司
  • 如何做查询网站seo关键技术有哪些
  • 网站建设经验与教训佛山网站优化服务
  • 重庆三环建设监理咨询有限公司网站厦门seo外包公司
  • 那间公司做网站好百度联系方式
  • 做网站那里好市场营销教材电子版
  • 外贸电商东莞seo计费
  • 涿州网站建设建网站软件
  • 搭建网站需要哪些东西友情链接的方式如何选择
  • 公司做网站有用吗最新疫情新闻100字