zoukankan      html  css  js  c++  java
  • Gol流程控制

    条件语句

    1. if语句

      if 布尔表达式 {
      
      }else 布尔表达式{
      
      }else{
      
      }
      
      1. if语句后的{,一定要和if条件写在同一行,否则报错
      2. else一定要在if语句}之后,不能自己另起一行
    2. if语句变型写法

      if statement;conditon{//注意分号分隔
      
      }
      //statement中可以声明变量,初始化变量等操作,其定义的变量可以在if语句的任何部分访问,出了if语句就无法访问
      
    3. switch语句

      switch 变量 { //这个变量没有类型限制 
          case val1: //val1是一个具体值
           	...
          case val2:
          	...
          default:
          	...
      }
      
      1. switch可以作用在任何类型上,
      2. case后的数值必须与switch作用的变量类型一致
      3. case后的数据必须是唯一的,不能出现重复
      4. default语句是可选的
      5. if只能作用在布尔类型上
    4. switch语句的其他写法

      switch{ //省略switch后的变量,相当于变为switch true {}的形式,也就是swtich后有个隐式的变量,并且这个这个变量被赋值为true
          case true:
          	...
          case false:
          	...
      }
      
      v1 := 23   //case后的true形式,也可以是使用switch外部变量的表达式(能返回true或false)
      switch{
          case v1<50:
          	fmt.Println("aaaaaaaa")
          case v1>=50:
          	fmt.Println("bbbbbbbbbbbb")
      }
      
      switch{
      	case 数值1,数值2,数值3://case后可以跟随多个数值,也就是具有相同逻辑的分支条件可以写在一起
      		...
      	case 数值4,数值5:
      		...
      }
      
      switch 初始化表达式;变量{ //同if一样,初始化语句与变量用;分隔
          //初始化表达式中定义的变量,只能在switch语句中可以访问
      }
      
      //switch默认每个case最后带break,匹配成功后不会自动向下执行其他case,而是跳出整个switch,但是可以用fallthrough强制执行后边的case代码。
      
      //fallthrough:用于穿透switch。当switch中某个case匹配成功之后,就执行该case语句,如果遇到fallthrough,那么后边紧邻的case,无需匹配,直接穿透执行。fallthrough必须放在case块的最后一行。
      
      
      switch v:=1;v {
          case 1:
          	fmt.Println(1)
          	fallthrough
          case 2:
          	fmt.Println(2)
      }
      
      1
      2
      
      fallthrough会是break失效,继续顺序执行下一个case,并且下一个case无需匹配,直接穿透执行
      
    5. for循环语句

      //标准写法
      for init;condition;post{}
      
      //省略表达式init,post
      //init;condition;post三个表达式都是可选的
      //省略表达式init,post;效果相当于其他语言的while(条件)
      for ;condition; { }//;可以保留也可以去掉
      for condition {}
      
      //同时省略三个表达式,相当于其他语言的while(true)永真
      for{ }
      
      //省略表达式condition,相当于condition设置为永真true
      for ; ; {}
      
      //其余写法 for表达式中同时省略几个表达式都可以
      省略init:初始条件可以写在for代码块之前
      省略condition:循环永远成立--死循环
      省略post:条件变化需要写在{}中,否则就是个死循环
      
      循环结束:
      条件不满足时,循环就结束了
      但是通过break和continue语句可以强制结束循环
      
      嵌套循环
      break和continue默认结束离的最近的里层循环
      如果先结束指定的某个循环,可以给指定循环贴标签(起名)
      
      out:for i:=0;i<5;i++{
      		for j:=0;j<3;j++{
      			fmt.Println(i,j)
      			if i ==2 {
      				break out
                      //continue out
      			}
      		}
      	}
      
    6. goto语句

      可以无条件的转移到程序中指定的行,通常配合条件语句使用。

      goto label
      .....
      .....
      label: statement
      
  • 相关阅读:
    AFNetworking
    Alpha、Beta、RC、GA版本的区别
    Cocoa的MVC架构分析
    Core Graphics 和Quartz 2D的区别
    Linux基础--03--磁盘分区、挂载
    Linux基础--02--top、free and ps
    linux基础-01-用户和目录、vim、归档和解压、系统启动流程、加密
    Oracle VM VirtualBox 中安装linux步骤
    009--项目成本管理
    008--项目立项管理
  • 原文地址:https://www.cnblogs.com/henryno12/p/12342728.html
Copyright © 2011-2022 走看看