go基础4-流程控制

所有语言的流程控制都是三个       顺序执行     if  else    for

 

一  if else  分支结构

if 表达式1{

 

}else if  表达式2 {

 

} else{

 

}

 

func ifDemo1(){

  score := 65

   if score <= 90 {

    fmt.Println("A")

  }

}

 

1,2   if 条件特殊写法   在 if表达式之前加一个执行语句  在根据变量值进行判断

func ifDemo2(){

  if score :=65;score >=90 {

    fmt.Println(score)

  }

}

 

二,   for(循环结构)   go所有循环都可在for   不像php 有foreach

for  初始语句;条件表达式;结束语句   {

  

}

条件表达式为false  结束循环

func forDemo1(

  for i:=1;i<10;i++{

    fmt.Println(i)

  }

)

 

for循环的初始语句可以省略 但是 ;  不能省

func demoFor2(){

  i:=0

  for    ;i<100;i++ {

    fmt.Println(i)

  }

}

or循环的初始语句和结束语句一起省略

func forDemo3(){

  i := 10

       for  i< 100{

    fmt.Println(i)

  }

}

 

无限循环   

for  {

        语句

}

 

for循环 可以通过  break       goto   return    panic  退出循环

 

三,  for  range    (键值循环)

go 可以使用此 遍历 数组  切片  字符串  map   channel(通道)

1 数组  切片  字符串 返回值和索引

2  map 返回键和值

3 channel  只返回通道内的值

四 switch  case 

func switchDemo(){

  a:=3

  switch  a {

    case 1:

      fmt.Println(a)

    case 2 :

      fmt.Println("b")

    default:

      fmt.Println("default")

  }

}

 

//一个分支可以有多个值

func switchDemo2(){

  switch n:=5;n{

    case 2,3,6:

      fmt.Println("偶数")

    case 1,5:

      fmt.Println("偶数")

    default:

  }

}

 

//分支还可以使用表达式        fallthrough   语法可以满足条件的case 执行下个case    

func deomo(){

  age :=20

  switch {

    case age >10:

      fmt.Println("10")

      fallsthrough

    case age <10://这个case会执行

  }

}

 

五,   goto    跳转到指定标签

func demo(){

  var  breakFlag  bool

  for i:=0;i< 10;i++{

    for j:=0;j<10;j++{

      if j ==2 {

        breakFlag = true

        break

      }

    }

    if breakFlag {

      break

    }

  }

}

使用goto简化

func demoGoto(){

  for i:=0;i<10;i++{

    for j:=0;j<10;j++{

      if j == 2{

        goto breakTag

      }

    }

    return 

    //标签

    breakTag:

  }

}

 

六  break     

      breakDemo:

                                  break breakDemo    //语句添加标签  表示退出某个标签对于的代码块 

 

七    continue   继续下次循环

在continue  加标签    表示开始标签对应的循环

forloop1:

 

                   continue  forloop1

        

 

posted @ 2021-03-17 18:53  fly_fly_fly#  阅读(30)  评论(0编辑  收藏  举报