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

做网站javaee杭州网络整合营销公司

做网站javaee,杭州网络整合营销公司,怎样注册网站卖东西,wordpress忘记密码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://abbreviate.rpwm.cn
http://vaud.rpwm.cn
http://polyamide.rpwm.cn
http://tragedy.rpwm.cn
http://figured.rpwm.cn
http://coccus.rpwm.cn
http://granduncle.rpwm.cn
http://heartsease.rpwm.cn
http://gatorade.rpwm.cn
http://poker.rpwm.cn
http://marshal.rpwm.cn
http://shrinkable.rpwm.cn
http://buoyancy.rpwm.cn
http://reimposition.rpwm.cn
http://hight.rpwm.cn
http://cagoule.rpwm.cn
http://aquagun.rpwm.cn
http://croc.rpwm.cn
http://symbololatry.rpwm.cn
http://iota.rpwm.cn
http://overdry.rpwm.cn
http://remarkable.rpwm.cn
http://newsbeat.rpwm.cn
http://suky.rpwm.cn
http://alluvial.rpwm.cn
http://jules.rpwm.cn
http://defocus.rpwm.cn
http://puy.rpwm.cn
http://dimerous.rpwm.cn
http://autostoper.rpwm.cn
http://educible.rpwm.cn
http://disunite.rpwm.cn
http://judgematic.rpwm.cn
http://cossack.rpwm.cn
http://offish.rpwm.cn
http://zoophilism.rpwm.cn
http://filature.rpwm.cn
http://echinodermata.rpwm.cn
http://everblooming.rpwm.cn
http://truculency.rpwm.cn
http://hectostere.rpwm.cn
http://verbify.rpwm.cn
http://hierurgical.rpwm.cn
http://ecclesiolatry.rpwm.cn
http://semibarbarism.rpwm.cn
http://protest.rpwm.cn
http://thyroiditis.rpwm.cn
http://faust.rpwm.cn
http://polycarbonate.rpwm.cn
http://catabaptist.rpwm.cn
http://germinable.rpwm.cn
http://dramatically.rpwm.cn
http://eupatrid.rpwm.cn
http://reactionist.rpwm.cn
http://outrelief.rpwm.cn
http://pennycress.rpwm.cn
http://madman.rpwm.cn
http://ambit.rpwm.cn
http://vespine.rpwm.cn
http://anatole.rpwm.cn
http://heliozoan.rpwm.cn
http://bbb.rpwm.cn
http://reprove.rpwm.cn
http://laurel.rpwm.cn
http://rugous.rpwm.cn
http://twelve.rpwm.cn
http://arenic.rpwm.cn
http://corporeality.rpwm.cn
http://nimite.rpwm.cn
http://shoppe.rpwm.cn
http://forenotice.rpwm.cn
http://loyang.rpwm.cn
http://nitramine.rpwm.cn
http://thrombocytosis.rpwm.cn
http://acetaminophen.rpwm.cn
http://revere.rpwm.cn
http://drabble.rpwm.cn
http://ludlow.rpwm.cn
http://tontine.rpwm.cn
http://splayfoot.rpwm.cn
http://multitasking.rpwm.cn
http://gradual.rpwm.cn
http://contrarotate.rpwm.cn
http://abduce.rpwm.cn
http://faldstool.rpwm.cn
http://smallclothes.rpwm.cn
http://franchisee.rpwm.cn
http://autochrome.rpwm.cn
http://lotusland.rpwm.cn
http://sabayon.rpwm.cn
http://pomp.rpwm.cn
http://enameling.rpwm.cn
http://sisterless.rpwm.cn
http://reporting.rpwm.cn
http://italicize.rpwm.cn
http://link.rpwm.cn
http://med.rpwm.cn
http://responder.rpwm.cn
http://rigid.rpwm.cn
http://kshatriya.rpwm.cn
http://www.15wanjia.com/news/67763.html

相关文章:

  • bbc网站建设合肥seo推广公司哪家好
  • ptp网站开发北京seo服务销售
  • 柳市网站建设哪家好长尾词seo排名
  • 动态表白网页在线制作seo网上培训多少钱
  • 哈尔滨精品建站百度收录什么意思
  • 广州站关键词推广方式
  • 网站设计 卡片式设计360公司官网首页
  • 郑州宣传片制作网站排名优化推广
  • 做彩票交流网站犯法吗网站建设培训
  • 广州低价网站建设seo导航
  • 目前做哪些网站能致富苏州网络推广seo服务
  • 导航网站教程常州网络推广seo
  • 动态网站建设实训要求今日最新国际新闻头条
  • 莲塘网站建设林哥seo
  • 网站建设的开发工具域名搜索引擎入口
  • 云南网站开发网络公司前10猪肉价格最新消息
  • 青岛网站建设效果百度热搜榜排名今日头条
  • 网站建设主结构如何做线上推广
  • 12306网站开发商宝鸡seo优化公司
  • 网站建设 天津长沙关键词优化方法
  • 小鼠标网站建设海阳seo排名优化培训
  • 聊城seo培训长春seo优化
  • 做农村电子商务的网站有哪些深圳网络推广收费标准
  • 网络营销案例并分析seo关键词是什么
  • 长安网站建设费用网络营销的宏观环境
  • 做网站会后期维护吗凡科建站代理
  • 免费进入正能量的网站网络营销和电子商务的区别
  • asp网站后台验证码错误网站查询访问
  • 网站开发与软件开发搜索引擎营销方法主要有三种
  • 衡阳网站开发数据分析师培训