Go的条件判断语句和跳转关键字break,continue,goto

if判断语句

  • if判断语句的判断条件不用()包裹,可以在判断语句里面初始化判断条件的值
  • 当判断语句的声明变量和局部变量名称一致时候,执行到判断语句中假设变量命名是if1时,局部变量的命名if1会隐藏,等到判断语句执行完再出现
func tempIf(a int) {
    if a > 0 {
        f.Println("if is true")
    } else {
        f.Println("if is false")
    }
}

for判断语句

  • 循环语句只有for,支持三种形式,没有while那些循环语句
  • 初始化和步进表达式可以是多个值
  • 条件每次循环都会被重新检查,因此不建议在条件语句中使用函数,尽量提前计算好条件并以常量或者变量代替
func tempFor(a int) {//常用的循环模式
    for i := 0; i < 10; i++ {
        if a == i {
            f.Println("break")
            break;
        } 
    }
}
func tempFor1(a int) {
    for a!=10{
        f.Println("continue")
    }
}
func tempFor2(a int) {//类似while
    for{
        if a>5{
            f.Println(a)
            break;
        }
    }
}

switch判断语句

  • switch语句可以使用任何类型或表达式做条件语句
    不需要break,一旦条件成立自动终止
  • 如果希望执行下一个case,使用fallthrough语句
    支持一个初始化表达式(可以是并行方式),右侧需跟分号
func tempSwitch(str string) {
    switch str {
    case "1":
        f.Println("str is 1")
        fallthrough//关键字,条件成立,依旧执行下一条case,不管下一条条件是否成立
    case "2":
        f.Println("str is 2")
    case "3":
        f.Println("str is 3")
    }
}
  • 跳转语句,关键字break,goto,continue

  • break,continue关键字作用其实跟java语言的没啥区别,可以跳出或者跳转执行指定的标签,但是在java中goto是保留字段,没有任何意义
  • c++中有标签,但是他的break,和continue不能说指定跳出和继续指定的标签,但是他的goto可以实现这个功能,条件成立,跳转到指定 标签的执行语句中

break关键字

LABLE1:
for {
    for i := 1; i < 10; i++ {
        if i == 4 {
            break LABLE1 //跳出定义了标签层
        }
    }
}
fm.Println("break is over")

goto关键字

for {
    for i := 1; i < 10; i++ {
        if i == 4 {
            goto LABLE2 //调整了执行位置,如果是标签是放在for语句
  //之前,又是重新开始执行
        }
    }
}
LABLE2:
fm.Println("goto is over")

continue关键字

LABLE3:
for i := 1; i < 10; i++ {
    for {
        fm.Print(i)
        continue LABLE3 //继续执行定义了标签层
    }
}
fm.Println("continue is over")

自增符号++和自减符号--

  • 他这个跟java语言的还是有区别的,它是作为一个语句,而不是作为一个表达式,他不能放在变量的左边,只能放在右边,譬如
  • a:=1
    a=a++ 或者 + +a,这样是错误的,
    只能a++,因为他是一个语句,同样道理,自减符号也是一样。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 作者的序言 朋友们,弃疗系列4出来啦,作者还并没有放弃,感觉自己萌萌哒,233。 语句 js程序其实就是一系列可执...
    zhaolion阅读 1,775评论 0 8
  • 个人学习批处理的初衷来源于实际工作;在某个迭代版本有个BS(安卓手游模拟器)大需求,从而在测试过程中就重复涉及到...
    Luckykailiu阅读 4,760评论 0 11
  • 雁行老师早就开始带领大家建立自己的群了,我一直没跟上节奏,一是觉得群已经很多了,再多一个自己的群每天都要费心管理肯...
    韵之lucky阅读 264评论 3 4
  • 是谁按了拉幕键? 一开始 帷幔 是整个垂到地面上的 它一层一层向上卷起的时候 我还低着头 酝酿着 在何处进行下一餐...
    米谷吧奴古吧都来吧阅读 203评论 0 1
  • 一.学习的本质 只为学习而学习的人与不学习的人浪费的时间一样多,知识本质上是工具,你需要借助它来改变自己。而不是一...
    想到学到做到阅读 272评论 1 3